Menu
Menu

Introduction

eProcessingNetwork

The eProcessing Network Transparent Database Engine Template (TDBE) is an Application Programming Interface (API) that allows you to integrate your website or application with the eProcessingNetwork Transaction Processing Gateway to perform credit card, debit card, gift card, and check transactions. Integrating with the TDBE requires advanced computer skills, including programming.

Websites and applications that collect and maintain a customer's order information can use the TDBE to seamlessly process transactions without the customer ever leaving the website. Applications communicate with the TDBE using HTTPS to ensure transactions are transmitted securely. All connections to the TDBE must be done with the TLSv1.2 protocol. Any connection attempts that do not utilize this protocol will fail. Developers generally must install the required HTTPS libraries for the language being used on their own server. Installing these libraries is beyond the scope of the support offered by eProcessingNetwork. Consult the documentation for your desired library for instructions on installation and use. This section describes the information required to perform transactions using the TDBE and provides examples of the values to send and the responses received. Examples are provided as sample JSON and XML, showing the HTTP POST values sent to the TDBE.

This API does not support Cross-Origin Resource Sharing (CORS) requests.

API URLs

The REST TDBE API uses a different set of URLs but it is backwards compatible with the old TDBE API. This allows you to submit a form like you would with the ad TDBE API but to the new TDBE API. The new TDBE API also allows you to also post JSON or XML. The parameters names are consistent across all content-types. To use JSON or XML, make sure your content-type for the POST is 'application/json' for JSON or text/xml' for XML. Examples can be found in the Sample Transactions section and the Appendix.

BEFORE THE SYSTEM WILL ALLOW A TRANSACTION USING THE TDBE:
In your developer account or any live accounts that use the TDBE API, go to the Web Services / Processing Controls Section / Disabled Integrations section and uncheck the TDBE (Transparent Database Engine)

Transaction:
		https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/transact.pl
		
Status:
		https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/status.pl
		
Transaction Reports:
		https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/reports.pl
        
CDM:
		https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/cdm.pl
		
Signature:
		https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/secure_signature_upload.pl
		
BillPay:
		https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/billpay.pl
		
Integration Diagnostics:
		https://www.eprocessingnetwork.com/cgi-bin/reflect/transact.pl
		

Getting started with the TDBE

Your website must use HTTP POST to communicate with the TDBE. For security reasons, do not use GET. To send requests as JSON or XML, use the content-types, application/json or text/xml.

Required for All Requests

The following fields are required for all requests sent to the TDBE.

Field Description
ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
RequestType The type of request you are sending to the TDBE. Valid request types are:
  • transaction
  • status
  • reports
  • cdm
  • recur
  • billpay
Note: When the amount values are under one dollar, always include the leading 0 before the decimal. Only include the digits and the decimal point. For example: Tax = 0.83
Required for All Requests
                
<?xml version="1.0" encoding="utf-8"?>
<Request>
  <ePNAccount>080880</ePNAccount>
  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
  <RequestType>transaction  </RequestType>
</Request>


               
Required for All Requests
   
   JSON: {
     "ePNAccount": "080880",
     "RestrictKey": "yFqqXJh9pqnugfr",
     "RequestType": "transaction"
   }
   
   

transaction Requests

The following table lists the minimum fields you must submit for a credit card not present transaction. All fields are case sensitive. In addition, we recommend you submit the fields listed in the Optional Fields section. If you run EMV transactions, the "CardNo" field is replaced with the "EncData", "EncFormat", and "EmvData" fields.See EMV for more information.

Field Description
ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
RequestType transaction
TranType sale See Transaction Types for more options.
Total The total amount of the transaction including taxes. For example, 100.00. Only include the digits and the decimal point.
Address The street address on file with the cardholder's issuing bank (for AVS).
Zip The ZIP code on file with the cardholder's issuing bank (for AVS).
CardNo The credit card number.
ExpMonth The 2-digit credit card expiration month, 01 through 12.
ExpYear The 2-digit credit card expiration year. For example, 28 for 2028.
CVV2Type Value indicating whether the CVV2 value was submitted for this transaction. For security reasons, you should always require the CVV2 value. Values are:
  • 0 - CVV2 should not be used for this transaction
  • 1 - CVV2 should be used for this transaction
  • 2 - The card's CVV2 is illegible
  • 9 - This credit card has no CVV2 imprinted on it
Note: Before using the CVV2Type 9, verify that the merchant's processor allows this.
CVV2 The CVV2 value on the card. If you submit 0 for CVV2Type, then submit this field as empty.
Card Not Present Request
		
		<?xml version="1.0" encoding="utf-8"?>
		<Request>
		 <ePNAccount>080880</ePNAccount>
		 <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
		 <RequestType>transaction</RequestType>
		 <TranType>Sale</TranType>
		 <Total>100.00</Total>
		 <Address>123 Main Street</Address>
		 <Zip>77008</Zip>
		 <CardNo>4111111111111111</CardNo>
		 <ExpMonth>12</ExpMonth>
		 <ExpYear>28</ExpYear>
		 <CVV2Type>1</CVV2Type>
		 <CVV2>123</CVV2>
		</Request>
		
		
Example Response:
		
		<?xml version="1.0" encoding="utf-8"?>
		<Response>
		 <XactID>20181128124125-080880-369</XactID>
		 <RespText>APPROVED 010956</RespText>
		 <AuthCode>010956</AuthCode>
		 <Invoice>369</Invoice>
		 <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
		 <AVSCode>X</AVSCode>
		 <AVSText>AVS Match 9 Digit Zip and Address (X)</AVSText>
		 <CVV2Code>M</CVV2Code>
		 <CVV2Text>CVV2 Match (M)</CVV2Text>
		</Response>
		
		
Card Not Present Request
		
		JSON: {
		  "ePNAccount": "080880",
		  "RestrictKey": "yFqqXJh9pqnugfr",
		  "RequestType": "transaction",
		  "TranType": "Sale",
		  "Total": "100.00",
		  "Address": "123 Main Street",
		  "Zip": "77008",
		  "CardNo": "4111111111111111",
		  "ExpMonth": "12",
		  "ExpYear": "29",
		  "CVV2Type": "1",
		  "CVV2": "123"
		}
		
		
Example Response:
		
		JSON: {
		  "XactID": "20181128124125-080880-369",
		  "Success": "Y",
		  "RespText": "APPROVED 010956",
		  "AuthCode": "010956",
		  "Invoice": "369",
		  "Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",,
		  "AVSCode": "X",
		  "AVSText": "AVS Match 9 Digit Zip and Address (X)",
		  "CVV2Code":  "M",
		  "CVV2Text": "CVV2 Match (M)"
		}
		
		

<TranType>

The transaction types available to developers are authorizations, voice authorization, authorization capture, authorization delete, authorization conversion, sale, store, debit, credit/refund, cash sale, cash return, void and close batch transactions, and credit/refund transactions. The following table lists the <TranType> values for transactions that are supported. Note: Individual merchant accounts may not support all transaction types.

Field Description
AuthOnly Authorization only. The transaction is not captured in the batch. To capture an AuthOnly transaction, perform an Auth2Sale transaction using the XactID returned by the TDBE.
Auth2Sale Capture a transaction previously approved using AuthOnly. Use the XactID returned in the original authorization. Auth2Sale supports using Tip and updated Total fields when converting the original authorization.
AuthDel Removes an authorization only transaction from the database if you decide not to capture it. Use the XactID returned in the original authorization.
Sale Authorize and capture the transaction. This is the default TranType.
AuthConvert Performs an Authorization transaction and then checks the AVS response and the CVV2 response against the values set in the Processing Controls sections of Merchant Support Center. If the transaction is Approved and matches the rules, it is batched, otherwise it is treated as a Decline.
Void Removes a sale or captured authorization only transaction from the current batch. You can only use a void transaction before you close the batch containing the transaction; afterward, you must use a return. Use the XactID returned in the original authorization.
Return Refunds money to the cardholder. You can use either the CardNo field or the XactID to refund money for an existing transaction.
Store Stores the cardholder's credit card or ACH data on the TDBE without processing a transaction. To process future transactions against the cardholder's data, use the XactID returned in the response.
DebitSale Processes a debit sale transaction. Debit transactions require a DUKPT PIN pad properly encrypted with your processor keys. See PIN Debit Transactions on page 7 for more information on required fields for debit transactions.
Voice Enter a sale transaction into the batch when you receive the authorization from another source, such as a voice authorization. Submit the AuthCode value containing the 6-digit authorization code you received.
Recur Process a recurring transaction. Do not submit CVV2, Address, or Zip values; the TDBE ignores these values.
CashSale Records a cash sale transaction. Used only for reporting.
CashReturn Records a cash return transaction. Used only for reporting.
CloseBatch Closes the batch.
Request Example: <TranType>Sale</TranType>

<?xml version="1.0" encoding="utf-8"?>
<Request>
  <ePNAccount>080880</ePNAccount>
  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
  <RequestType>transaction</RequestType>
  <TranType>Sale</TranType>
  <Total>110.83</Total>
  <Address>123 Main Street</Address>
  <Zip>77008</Zip>
  <CardNo>4111111111111111</CardNo>
  <ExpMonth>12</ExpMonth>
  <ExpYear>28</ExpYear>
  <CVV2Type>1</CVV2Type>
  <CVV2>123</CVV2>
</Request>

Example Response:

<?xml version="1.0" encoding="utf-8"?>
<Response>
  <XactID>20181128124125-080880-123456</XactID>
  <Success>N</Success>
  <RespText>Hold - Call</RespText>
  <Invoice>369</Invoice>
  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
  <AVSCode>X</AVSCode>
  <AVSText>AVS Match 9 Digit Zip and Address (X)</AVSText>
  <CVV2Code>M</CVV2Code>
  <CVV2Text>CVV2 Match (M)</CVV2Text>
  <MerchReqID>123456ABC</MerchReqID>
</Response>
Request Example:<TranType>Sale</TranType>
		
		JSON: {
		  "ePNAccount": "080880",
		  "RestrictKey": "yFqqXJh9pqnugfr",
		  "RequestType": "transaction",
		  "TranType": "Sale",
		  "Total": "100.00",
		  "Address": "123 Main Street",
		  "Zip": "77008",
		  "CardNo": "4111111111111111",
		  "ExpMonth": "12",
		  "ExpYear": "29",
		  "CVV2Type": "1",
		  "CVV2": "123"
		}
		
		
Example Response:
		
		JSON: {
		  "XactID": "20181128124125-080880-369",
		  "Success": "Y",
		  "RespText": "APPROVED 010956",
		  "AuthCode": "010956",
		  "Invoice": "369",
		  "Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",,
		  "AVSCode": "X",
		  "AVSText": "AVS Match 9 Digit Zip and Address (X)",
		  "CVV2Code":  "M",
		  "CVV2Text": "CVV2 Match (M)"
		}
		
		
Request Example: <TranType>Void</TranType>

<?xml version="1.0" encoding="utf-8"?>
<Request>
  <ePNAccount>080880</ePNAccount>
  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
  <RequestType>transaction</RequestType>
  <TranType>Void</TranType>
  <Total>110.83</Total>
  <XactID>20181128124125-080880-123456</XactID>
</Request>

Example Response:

<?xml version="1.0" encoding="utf-8"?>
<Response>
  <XactID>20181128124125-080880-123456</XactID>
  <Success>Y</Success>
  <RespText>Successfull</RespText>
  <Invoice>370</Invoice>
  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
</Response>


Request Example:<TranType>Void</TranType>
		
		JSON: {
		  "ePNAccount": "080880",
		  "RestrictKey": "yFqqXJh9pqnugfr",
		  "RequestType": "transaction",
		  "TranType": "Void",
		  "Total": "100.00",
		  "XactID": "20181128124125-080880-369"
		}
		
		
Example Response:
		
		JSON: {
		  "XactID": "20181128124125-080880-369-5",
		  "Success": "Y",
		  "RespText": "Successful",
			  "Invoice": "370",
		  "Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5"
        }
		
		
Request Example: <TranType>CloseBatch</TranType>

<?xml version="1.0" encoding="utf-8"?>
<Request>
  <ePNAccount>080880</ePNAccount>
  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
  <RequestType>transaction</RequestType>
  <TranType>CloseBatch</TranType>
</Request>

Example Response:

<?xml version="1.0" encoding="utf-8"?>
<Response>  <Success>Y</Success>
  <RespText>Successfull</RespText>
  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
</Response>

Request Example:<TranType>CloseBatch</TranType>
		
		JSON: {
		  "ePNAccount": "080880",
		  "RestrictKey": "yFqqXJh9pqnugfr",
		  "RequestType": "transaction",
		  "TranType": "CloseBatch",
		}
		
		
Example Response:
		
		JSON: {
		  "XactID": "20181128124125-080880-369",
		  "Success": "Y",
		  "RespText": "Successful"
  }
		
		

EMV/Encrypted Swiped Transactions

TDBE allows for encrypted swiped transactions with the devices below. They MUST be encrypted with the eProcessing Network encryption key. In order to run an EMV transaction, you will have to provide the EMV data and it will be sent with the parameter 'EmvData.' EMV can only be utilized by using an encrypted device such as the MP200 from Castles.

Note: If your device ever declines the transaction prior to actually sending the transaction, you will have to use the parameter 'EMVOfflineDecline' and set it to 'Y'. This ensures that the transaction shows up under declines in Activity Reports.

View Compatible Devices

  • IDTECH Model: EDRE-334133BE
  • Magtek: Bullet (Bluetooth reader)
  • Castles MP200
  • Castles VEGA3000
  • BBPOS ChipperBT
  • BBPOS Chipper2XBT
  • BBPOS WisePad2
  • BBPOS WisePad2 Plus
  • BBPOS WisePad3S
  • Premier 160 (ZCS)
Field Description
ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
RequestType transaction
TranType sale See Transaction Types for more options.
Swiped 1
Total The total amount of the transaction. For example, 100.00. Only include the digits and the decimal point.
Device ChipperBT View
  • IDTECH2
  • IMAGPAY
  • ZCS
  • MP200
  • VEGA3000
  • ChipperBT
  • Chipper2XBT
  • WisePad2
  • WisePad2 Plus
  • WisePad3S
  • MagneSafe
  • MagnePrint
EncFormat BBPOS View
  • IDTECH2
  • IMAGPAY
  • ZCS
  • MP200
  • BBPOS
  • MagneSafe
  • MagnePrint
EncData The P2PE KSN data and the P2PE Encrypted data must be concatenated together to become EncData parameter.
EmvData All of the EMV data tags as a base64 encoded string. This is only required if it is an EMV transaction.
EMVOfflineDecline Y If your device ever declines the transaction prior to actually sending the transaction, you will have to use this parameter to notify ePN so the transaction gets documented in the Activity Reports as a decline.
Basic EMV Transaction
		
		<?xml version="1.0" encoding="utf-8"?>
		<Request>
		  <ePNAccount>080880</ePNAccount>
		  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
		  <RequestType>transaction</RequestType>
		  <TranType>Sale</TranType>
		  <Swiped>1</Swiped>
		  <Total>100.00</Total>
		  <Device>ChipperBT</Device>
		  <EncFormat>BBPOS</EncFormat>
		  <EncData>XXXXXXXXXXX</EncData>
	  <EmvData>XXXXXXXXXXX</EncData>
</Request>
		
		
Example Response:
		
		<?xml version="1.0" encoding="utf-8"?>
		<Response>
		  <XactID>20181128124125-080880-369</XactID>
		  <Success>Y</Success>
		  <AuthCode>010956</AuthCode>
		  <Invoice>369</Invoice>
		  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
		  <EmvRespData>XXXXXXXXXXX</EmvRespData>
		</Response>
		
		
Request Example: <DoubleFallback>1</DoubleFallback>
		
		JSON: {
		"ePNAccount": "080880",
		"RestrictKey": "yFqqXJh9pqnugfr",
		"RequestType": "transaction",
		"TranType": "Sale",
		"Swiped": "1",
		"Total": "1",
		"Device": "ChipperBT",
		"EncFormat": "BBPOS",
		"EncData": "XXXXXXXXXXX",
  "EmvData": "XXXXXXXXXXX"
		}
		
		
Example Response:
		
		JSON: {
		"XactID": "20181128124125-080880-369",
		"Success": "Y",
		"AuthCode": "010956",
		"Invoice": "369",
		"Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",
		"EmvRespData": "AVS Match 9 Digit Zip and Address (X)"
		}
		
		

EMV IssuesDoubleFallback

Reading EMV card data can have issues and result in EMV devices demanding the card be swiped. When this happens, the device will still return some EMV tags and the POS Entry Mode tag (9F39) indicates that the transaction is a fallback. Nothing special needs to be done until there are 2 fallback transactions in a row. The application needs to keep track of this and if it does occur, a new parameter must be passed with the transaction. The parameter is DoubleFallback and it would be set to 1.

Field Description
ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
RequestType transaction
TranType sale See Transaction Types for more options.
Swiped 1 Value always = 1. Indicates that the card was swiped.
Total The total amount of the transaction including taxes For example, 100.00. Only include the digits and the decimal point.
Device ChipperBT View
  • IDTECH2
  • IMAGPAY
  • ZCS
  • MP200
  • VEGA3000
  • ChipperBT
  • Chipper2XBT
  • WisePad2
  • WisePad2 Plus
  • WisePad3S
  • MagneSafe
  • MagnePrint
EncFormat BBPOS View
  • IDTECH2
  • IMAGPAY
  • ZCS
  • MP200
  • BBPOS
  • MagneSafe
  • MagnePrint
EncData The P2PE KSN data and the P2PE Encrypted data must be concatenated together to become 'EncData' parameter.
DoubleFallback 1 Value always = 1.
Request Example: <DoubleFallback>1</DoubleFallback>
		
		<?xml version="1.0" encoding="utf-8"?>
		<Request>
		  <ePNAccount>080880</ePNAccount>
		  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
		  <RequestType>transaction</RequestType>
		  <TranType>Sale</TranType>
		  <Swiped>1</Swiped>
		  <Total>100.00</Total>
		  <Device>ChipperBT</Device>
		  <EncFormat>BBPOS</EncFormat>
		  <EncData>XXXXXXXXXXX</EncData>
		  <DoubleFallback>1</DoubleFallback>
		</Request>
		
		
Example Response:
		
		<?xml version="1.0" encoding="utf-8"?>
		<Response>
		  <XactID>20181128124125-080880-369</XactID>
		  <Success>Y</Success>
		  <AuthCode>010956</AuthCode>
		  <Invoice>369</Invoice>
		  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
		  <EmvRespData>XXXXXXXXXXX</EmvRespData>
		</Response>
		
		
Request Example: <DoubleFallback>1</DoubleFallback>
		
		JSON: {
		"ePNAccount": "080880",
		"RestrictKey": "yFqqXJh9pqnugfr",
		"RequestType": "transaction",
		"TranType": "Sale",
		"Swiped": "1",
		"Total": "1",
		"Device": "ChipperBT",
		"EncFormat": "BBPOS",
		"EncData": "XXXXXXXXXXX",
		"DoubleFallback": "1"
		}
		
		
Example Response:
		
		JSON: {
		"XactID": "20181128124125-080880-369",
		"Success": "Y",
		"AuthCode": "010956",
		"Invoice": "369",
		"Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",
		"EmvRespData": "AVS Match 9 Digit Zip and Address (X)"
		}
		
		
View Response Value Definitions
XactID

A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:

TimeStamp-AccountNumber-InvoiceNumber
20181128124125-080880-123456
XactID's can include a fourth value followed by a dash:
20181128124125-080880-123456-0
  1. 0 - Declined
  2. 6 - Check
  3. 5 - Void
Success Indicates the success of the transaction
  1. Y - Approved
  2. N - Declined
  3. U - Unable to perform the transaction.
AuthCode The authorization code. This field is only present for credit/debit transactions.
Invoice The invoice number that is assigned this transaction. Max of 8 characters.
Tran_token A unique token used for pulling the transaction's Response Values again.
EmvRespData A string of data returned from the processor for the EMV device.

DebitSale Transactions

PIN debit transactions are similar to swiped transactions; but require PIN and Key Serial data from the PIN pad. The following table describes the required fields for PIN debit transactions.

Field Description
ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
RequestType transaction
TranType DebitSale See Transaction Types for more options.
Swiped 1 Value always = 1. Indicates that the card was swiped.
Total The total amount of the transaction including taxes. For example, 100.00. Only include the digits and the decimal point.
EncFormat BBPOS View
  • MP200
  • BBPOS
Device ChipperBT View
  • MP200
  • VEGA3000
  • WisePad2
  • WisePad2 Plus
  • WisePad3S
EncData The P2PE KSN data and the P2PE Encrypted data must be concatenated together to become 'EncData' parameter.
PINBlock This information is provided by your PIN debit device.
KeySerial This information is provided by your PIN debit device.
EncData The P2PE KSN data and the P2PE Encrypted data must be concatenated together to become 'EncData' parameter.
EmvData EMV DEBIT ONLY: All of the EMV data tags as a base64 encoded string. This is only required if it is an EMV transaction.
Request Example:<TranType>DebitSale</TranType>
		
		<?xml version="1.0" encoding="utf-8"?>
		<Request>
		  <ePNAccount>080880</ePNAccount>
		  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
		  <RequestType>transaction</RequestType>
		  <TranType>DebitSale</TranType>
		  <Swiped>1</Swiped>
		  <Total>100.00</Total>
		  <Device>ChipperBT</Device>
		  <EncFormat>BBPOS</EncFormat>
		  <EncData>XXXXXXXXXXX</EncData>
		  <EmvData>XXXXXXXXXXX</EmvData
		</Request>
		
		
Example Response:
		
		<?xml version="1.0" encoding="utf-8"?>
		<Response>
		  <XactID>20181128124125-080880-369</XactID>
		  <Success>Y</Success>
		  <AuthCode>010956</AuthCode>
		  <RespText>APPROVED 010956</RespText>
		  <AuthCode>010956</AuthCode>
		  <Invoice>369</Invoice>
		  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
		  <EmvRespData>XXXXXXXXXXX</EmvRespData>
		</Response>
		
		
Request Example: <TranType>DebitSale</TranType>
		
		JSON: {
		"ePNAccount": "080880",
		"RestrictKey": "yFqqXJh9pqnugfr",
		"RequestType": "transaction",
		"TranType": "DebitSale",
		"Swiped": "1",
		"Total": "1",
		"Device": "ChipperBT",
		"EncFormat": "BBPOS",
		"EncData": "XXXXXXXXXXX",
		"EmvData": "XXXXXXXXXXX"
		}
		
		
Example Response:
		
		JSON: {
		"XactID": "20181128124125-080880-369",
		"Success": "Y",
		"RespText": "APPROVED 010956",
		"AuthCode": "010956",
		"Invoice": "369",
		"Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",
		"EmvRespData": "AVS Match 9 Digit Zip and Address (X)"
		}
		
		
View Response Value Definitions
XactID

A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:

TimeStamp-AccountNumber-InvoiceNumber
20181128124125-080880-123456
XactID's can include a fourth value followed by a dash:
20181128124125-080880-123456-0
  1. 0 - Declined
  2. 6 - Check
  3. 5 - Void
Success Indicates the success of the transaction
  1. Y - Approved
  2. N - Declined
  3. U - Unable to perform the transaction.
RespText The extended details of the "Success" indicator.
AuthCode The authorization code. This field is only present for credit/debit transactions.
Invoice The invoice number that is assigned this transaction. Max of 8 characters.
Tran_token A unique token used for pulling the transaction's Response Values again.
EmvRespData A string of data returned from the processor for the EMV device.

Signature Capture/Image

You can include a signature image file with a transaction. If the transaction approves the image is kept with the transaction and can be viewed later. This is used for Signature Capture but could also be used for some other relevant image as well. Two additional parameters are required "SignatureFile" and "SignatureHexData".

Field Description
ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
RequestType transaction
TranType Sale See Transaction Types for more options.
Swiped 1 Value always = 1. Indicates that the card was swiped.
Total The total amount of the transaction including taxes. For example, 100.00. Only include the digits and the decimal point.
Device ChipperBT View
  • IDTECH2
  • IMAGPAY
  • ZCS
  • MP200
  • VEGA3000
  • ChipperBT
  • Chipper2XBT
  • WisePad2
  • WisePad2 Plus
  • WisePad3S
  • MagneSafe
  • MagnePrint
EncFormat BBPOS View
  • IDTECH2
  • IMAGPAY
  • ZCS
  • MP200
  • BBPOS
  • MagneSafe
  • MagnePrint
EncData The P2PE KSN data and the P2PE Encrypted data must be concatenated together to become 'EncData' parameter.
SignatureFile This the is the name of the file and file extension, this is used to determine the type of image. TDBE will only except .jpeg or .png.
SignatureHexData This is a hex representation of the binary data in the file. Each byte of the file is represented by two hex digits.
Request Example: <SignatureFile>CustomerSig.png</SignatureFile>
		
		<?xml version="1.0" encoding="utf-8"?>
		<Request>
		  <ePNAccount>080880</ePNAccount>
		  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
		  <RequestType>transaction</RequestType>
		  <TranType>Sale</TranType>
		  <Swiped>1</Swiped>
		  <Total>100.00</Total>
		  <Device>ChipperBT</Device>
		  <EncFormat>BBPOS</EncFormat>
		  <EncData>XXXXXXXXXXX</EncData>
		  <EmvData>XXXXXXXXXXX</EmvData
		  <SignatureFile>CustomerSig.png</SignatureFile>
		  <SignatureHexData>89504E70D0A1A0...</SignatureHexData>
		</Request>
		
		
Example Response:
						  
							  <?xml version="1.0" encoding="utf-8"?>
							  <Response>
							    <XactID>20181128124125-080880-369</XactID>
							    <Success>Y</Success>
							    <AuthCode>010956</AuthCode>
							    <RespText>APPROVED 010956</RespText>
							    <AuthCode>010956</AuthCode>
							    <Invoice>369</Invoice>
							    <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
							    <EmvRespData>XXXXXXXXXXX</EmvRespData>
							  </Response>
						  
					  
Request Example: <SignatureFile>CustomerSig.png</SignatureFile>
						
							JSON: {
						   "ePNAccount": "080880",
						   "RestrictKey": "yFqqXJh9pqnugfr",
						   "RequestType": "transaction",
						   "TranType": "Sale",
						   "Swiped": "1",
						   "Total": "1",
						   "Device": "ChipperBT",
						"EncFormat": "BBPOS",
						   "EmvData": "XXXXXXXXXXX",
						   "SignatureFile": "CustomerSig.png",
						   "SignatureHexData": "89504E70D0A1A0..."
						 }
						
					
Example Response:
						
						JSON: {
					   "XactID": "20181128124125-080880-369",
					   "Success": "Y",
					   "RespText": "APPROVED 010956",
					   "AuthCode": "010956",
					   "Invoice": "369",
					   "Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",
					   "EmvRespData": "AVS Match 9 Digit Zip and Address (X)"
						}
						
					
View Response Value Definitions
XactID A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:
TimeStamp-AccountNumber-InvoiceNumber
20181128124125-080880-123456
XactID's can include a fourth value followed by a dash:
20181128124125-080880-123456-0
  1. 0 - Declined
  2. 6 - Check
  3. 5 - Void
Success Indicates the success of the transaction
  1. Y - Approved
  2. N - Declined
  3. U - Unable to perform the transaction.
RespText The extended details of the "Success" indicator .
AuthCode The authorization code. This field is only present for credit/debit transactions.
Invoice The invoice number that is assigned this transaction. Max of 8 characters .
Tran_token A unique token used for pulling the transaction's Response Values again.
EmvRespData A string of data returned from the processor for the EMV device.

Signature Capture Upload Post

https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/secure_signature_upload.pl

If you would rather upload the signature capture image after the transaction has approved, you will need to post these additional fileds to the "secure_signature_upload.pl"

Field Description
RequestType The type of transaction you are submiting. In this case the RequestType = signature
Tran_token The transaction token provided in the response of the transaction. This one is only used for pulling the response again.
SignatureFile This the is the name of the file and file extension, this is used to determine the type of image. TDBE will only except .jpeg or .png.
SignatureHexData This is a hex representation of the binary data in the file. Each byte of the file is represented by two hex digits.
Request Example: <SignatureFile>CustomerSig.png</SignatureFile>
					  
						  <?xml version="1.0" encoding="utf-8"?>
						  <Request>
						    <ePNAccount>080880</ePNAccount>
						    <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
						    <RequestType>signature</RequestType>
						    <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
						    <SignatureFile>CustomerSig.png</SignatureFile>
						    <SignatureHexData>89504E70D0A1A0...</SignatureHexData>
						  </Request>
					  
					
Example Response:
						  
							  <?xml version="1.0" encoding="utf-8"?>
							  <Response>
							    <Success>Y</Success>
							    <RespText>Successful</RespText>
							  </Response>
						  
					  
Request Example:<RequestType>signature</RequestType>
		
		JSON: {
		"ePNAccount": "080880",
		"RestrictKey": "yFqqXJh9pqnugfr",
		"RequestType": "signature",
		"SignatureFile": "CustomerSig.png",
		"SignatureHexData": "89504E70D0A1A0..."
		}
		
		
Example Response:
		
		JSON: {
		"Success": "Y",
		"RespText": "Successful"
		}
		
		
View Response Value Definitions
Success Indicates the success of the transaction
  1. Y - Successful
  2. N - Invalid Image Extension
  3. N - Invalid Signature Data
  4. N - Invalid Transaction Token
RespText The extended details of the "Success" indicator.

Purchase Level Cards

Credit cards can be processed at three different levels. These levels are determined by the card that is being processed and can affect the rates that the cards are processed at. In order for a transaction to qualify for special rates, there must be additional data passed with the transaction. For example, Level I card data is typically associated with consumer transactions and limited purchase data returned to the cardholder. Below is a chart of the required data for each card level.
For keyed transactions see the Transaction Request Section. Use test CardNo = 4484070000000000

Required Data Field Comparison Cart

Field
Level I
Level II
Level III
Amount
TaxCode
Tax
CustCode
PCLevelIII
CommodityCode
Shipping
DestinationZip
DestinationCountryCode
InvItems

Sale from XactID

For most transaction types that require credit card information, such as sale and credit/return, you can submit the XactID of a previously closed transaction instead of the credit card information. The TDBE looks up the card information without displaying it to the merchant. ExpMonth and ExpYear are not required; however, you can submit these values to update the information stored on the TDBE. Please make sure to set the TranType to Sale.


Required:
Field Description
ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
RequestType transaction
TranType Sale See Transaction Types for more options.
Total The total amount of the transaction including taxes. For example, 100.00. Only include the digits and the decimal point.
Address The street address on file with the cardholder's issuing bank (for AVS).
Zip The ZIP code on file with the cardholder's issuing bank (for AVS).
XactID The transaction ID of a previously run sale or stored card. TransID can also be used for the parameter name.
Sale from XactID Transaction
		
		<?xml version="1.0" encoding="utf-8"?>
		<Request>
		  <ePNAccount>080880</ePNAccount>
		  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
		  <RequestType>transaction</RequestType>
		  <TranType>Sale</TranType>
		  <Total>100.00</Total>
		  <XactID>20181128105925-080880-357</XactID>
  <Address>123 Street</Address>
		  <Zip>77008</Zip>
</Request>
		
		
Example Response:
		
		<?xml version="1.0" encoding="utf-8"?>
		<Response>
		  <XactID>20181128124125-080880-369</XactID>
		  <Success>Y</Success>
		  <AuthCode>010956</AuthCode>
		  <Invoice>369</Invoice>
		  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
		</Response>
		
		
Sale from XactID Transaction
		
		JSON: {
		"ePNAccount": "080880",
		"RestrictKey": "yFqqXJh9pqnugfr",
		"RequestType": "transaction",
		"TranType": "Sale",
		"Total": "100.00",
		"XactID": "20181128105925-080880-357",
		"Address": "123 Street",
		"Zip": "77008",
		}
		
		
Example Response:
		
		JSON: {
		"XactID": "20181128124125-080880-369",
		"Success": "Y",
		"AuthCode": "010956",
		"Invoice": "369",
		"Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",
		}
		
		

Sale from CDM Identifier

If a merchant account has CDM Advanced, you can submit a customer Identifier or Email and automatically run a sale from the customer's stored default payment. It uses the billing address information associated with the default payment. Please make sure to set the TranType to Sale.


Required:
Field Description
ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
RequestType transaction
TranType Sale See Transaction Types for more options.
Total The total amount of the transaction including taxes. For example, 100.00. Only include the digits and the decimal point.
Identifier The unique CDM identifier or the email address of the customer you wish to process a payment for.
Sale from CDM Identifier Transaction
		
		<?xml version="1.0" encoding="utf-8"?>
		<Request>
		  <ePNAccount>080880</ePNAccount>
		  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
		  <RequestType>transaction</RequestType>
		  <TranType>Sale</TranType>
		  <Total>100.00</Total>
		  <Identifier>customer@gmail.com</XactID>
</Request>
		
		
Example Response:
		
		<?xml version="1.0" encoding="utf-8"?>
		<Response>
		  <XactID>20181128124125-080880-369</XactID>
		  <Success>Y</Success>
		  <AuthCode>010956</AuthCode>
		  <Invoice>369</Invoice>
		  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
		</Response>
		
		
Sale from CDM Identifier Transaction
		
		JSON: {
		"ePNAccount": "080880",
		"RestrictKey": "yFqqXJh9pqnugfr",
		"RequestType": "transaction",
		"TranType": "Sale",
		"Total": "100.00",
		"Identifier": "customer@gmail.com",
		}
		
		
Example Response:
		
		JSON: {
		"XactID": "20181128124125-080880-369",
		"Success": "Y",
		"AuthCode": "010956",
		"Invoice": "369",
		"Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",
		}
		
		

PC Level II Transactions

Level II purchasing card data benefit the corporate/government/industrial buyer and includes the same information captured at Level I, plus: sales tax amount, plus a field called CustCode. The CustCode can be the customer's accounting code, tax ID number or the purchase order number. The following table describes the fields required for Purchase Card level II transactions.

Field Description
ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
RequestType transaction
TranType sale See Transaction Types for more options.
Swiped 1 Value always = 1. Indicates that the card was swiped.
Tax The tax amount of the transaction. Only include the digits and the decimal point. If the tax value is not required, submit 0.00.
Total The total amount of the transaction including taxes. For example, 100.00. Only include the digits and the decimal point.
CustCode The invoice number, purchase order number, or customer code for this transaction all of which can be up to 17 alphanumeric characters. Any special characters will be stripped.
Device BBPOS View
  • IDTECH2
  • IMAGPAY
  • ZCS
  • MP200
  • VEGA3000
  • ChipperBT
  • Chipper2XBT
  • WisePad2
  • WisePad2 Plus
  • WisePad3S
  • MagneSafe
  • MagnePrint
EncFormat BBPOS View
  • IDTECH2
  • IMAGPAY
  • ZCS
  • MP200
  • BBPOS
  • MagneSafe
  • MagnePrint
EncData The P2PE KSN data and the P2PE Encrypted data must be concatenated together to become 'EncData' parameter.
EmvData All of the EMV data tags as a base64 encoded string. This is only required if it is an EMV transaction.
Request Example: <CustCode>1234567</CustCode>
		
		<?xml version="1.0" encoding="utf-8"?>
		<Request>
		  <ePNAccount>080880</ePNAccount>
		  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
		  <RequestType>transaction</RequestType>
		  <TranType>Sale</TranType>
		  <Swiped>1</Swiped>
		  <Tax>0.83</Tax>
		  <Total>100.83</Total>
		  <CustCode>1234567</CustCode>
		  <Device>ChipperBT</Device>
		  <EncFormat>BBPOS</EncFormat>
		  <EncData>XXXXXXXXXXX</ExpMonth>
		  <EmvData>XXXXXXXXXXX</ExpYear>
		</Request>
		
		
Example Response:
		
		<?xml version="1.0" encoding="utf-8"?>
		<Response>
		  <XactID>20181128124125-080880-369</XactID>
		  <Success>Y</Success>
		  <RespText>APPROVED 010956</RespText>
		  <AuthCode>010956</AuthCode>
		  <Invoice>369</Invoice>
		  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
		  <EmvRespData>XXXXXXXXXXX</EmvRespData>
		</Response>
		
		
Request Example: <CustCode>1234567</CustCode>
		
		JSON: {
		"ePNAccount": "080880",
		"RestrictKey": "yFqqXJh9pqnugfr",
		"RequestType": "transaction",
		"TranType": "Sale",
		"Swiped": "1",
		"Tax": "0.83"
		"Total": "100.83"
		"CustCode": "1234567",
		"Device": "ChipperBT",
		"EncFormat": "BBPOS",
		"EncData": "XXXXXXXXXXX",
		"EmvData": "XXXXXXXXXXX"
		}
		
		
Example Response:
		
		JSON: {
		"XactID": "20181128124125-080880-369",
		"Success": "Y",
		"RespText": "APPROVED 010956",
		"AuthCode": "010956",
		"Invoice": "369",
		"Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",
		"EmvRespData": "AVS Match 9 Digit Zip and Address (X)"
		}
		
		
View Response Value Definitions
XactID A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:
TimeStamp-AccountNumber-InvoiceNumber
20181128124125-080880-123456
XactID's can include a fourth value followed by a dash:
20181128124125-080880-123456-0
  1. 0 - Declined
  2. 6 - Check
  3. 5 - Void
Success Indicates the success of the transaction
  1. Y - Approved
  2. N - Declined
  3. U - Unable to perform the transaction.
RespText The extended details of the "Success" indicator.
AuthCode The authorization code. This field is only present for credit/debit transactions.
Tran_token A unique token used for pulling the transaction's Response Values again.
EmvRespData A string of data returned from the processor for the EMV device.

PC Level III Transactions

(TSYS, Elavon, and FDMS North ONLY)

For transactions to qualify for LevelII rates, additional information needs to be included with the transaction. This information will transform the items in the sale from a list to an itemized invoice. Level III purchasing card data includes the same information captured at Levels I and II transactions; plus: quantities, product codes, product descriptions, destination ZIP, freight amount, order/ticket number, unit of measure, extended item amount, discount indicator, discount amount, net/gross indicator, tax rate applied, tax type applied, debit or credit indicator and alternate tax identifier.

Field Description
ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
RequestType transaction
TranType sale See Transaction Types for more options.
Swiped 1 Value always = 1. Indicates that the card was swiped.
TaxCode
  1. 1 = Charge Tax
  2. 2 = Tax exempt
Tax The tax amount of the transaction. Only include the digits and the decimal point. If the tax value is not required, submit 0.00.
Total The total amount of the transaction including taxes. For example, 100.00. Only include the digits and the decimal point.
CustCode The invoice number, purchase order number, or customer code for this transaction all of which can be up to 17 characters.
PCLevelIII Yes Identifies the transaction as Level III.
CommodityCode Commodity code for the transaction.
Shipping Total amount charged for Shipping.
DestinationZip Shipping destination zip code.
DestinationCountryCode Standard country code as defined by the UN. Code for the USA is 840.
InvItems Array of data for multipule Items.
Item Signifies a data set for one Item.
Qty Number of items ordered/sold
UOM Date the order/sale was placed/made. If not provided, we will use the current date for the transaction. Formatting is YYMMDD
Code Item specific commodity code
Desc Item specific description
Price Sale Price peritem. Price before any discounts.
Disc Amount of discount applied to the Price.
Device BBPOS View
  • IDTECH2
  • IMAGPAY
  • ZCS
  • MP200
  • VEGA3000
  • ChipperBT
  • Chipper2XBT
  • WisePad2
  • WisePad2 Plus
  • WisePad3S
  • MagneSafe
  • MagnePrint
EncFormat BBPOS View
  • IDTECH2
  • IMAGPAY
  • ZCS
  • MP200
  • BBPOS
  • MagneSafe
  • MagnePrint
EncData The P2PE KSN data and the P2PE Encrypted data must be concatenated together to become 'EncData' parameter.
EmvData All of the EMV data tags as a base64 encoded string. This is only required if it is an EMV transaction.
Request Example: <PCLevelIII>Yes</PCLevelIII>
		
		<?xml version="1.0" encoding="utf-8"?>
		<Request>
		  <ePNAccount>080880</ePNAccount>
		  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
		  <RequestType>transaction</RequestType>
		  <TranType>Sale</TranType>
		  <Swiped>1</Swiped>
		  <TaxCode>1</TaxCode>
		  <Tax>0.83</Tax>
		  <Total>20.83</Total>
		  <CustCode>1234567</CustCode>
		  <PCLevelIII>Yes</PCLevelIII>
		  <CommodityCode>123456</CommodityCode>
		  <Shipping>10.00</Shipping>
		  <DestinationZip>77008</DestinationZip>
		  <DestinationCountryCode>840</DestinationCountryCode>
		  <InvItems>
		     <Item>
		        <Code>11111</Code>
		        <Qty>2</Qty>
		        <UOM>Bag</UOM>
		        <Desc>Sugar</Desc>
		        <Price>6.00</Price>
		        <Disc>1.00</Disc>
		     </Item>
		  </InvItems>
		  <Device>ChipperBT</Device>
		  <EncFormat>BBPOS</EncFormat>
		  <EncData>XXXXXXXXXXX</EncData>
		  <EmvData>XXXXXXXXXXX</EmvData>
		</Request>
		
		
Example Response:
		
		<?xml version="1.0" encoding="utf-8"?>
		<Response>
		  <XactID>20181128124125-080880-369</XactID>
		  <Success>Y</Success>
		  <RespText>APPROVED 010956</RespText>
		  <AuthCode>010956</AuthCode>
		  <Invoice>369</Invoice>
		  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
		  <EmvRespData>XXXXXXXXXXX</EmvRespData>
		</Response>
		
		
Request Example: <PCLevelIII>Yes</PCLevelIII>
		
		JSON: {
		  "ePNAccount": "080880",
		  "RestrictKey": "yFqqXJh9pqnugfr",
		  "RequestType": "transaction",
		  "TranType": "Sale",
		  "Swiped": "1",
		  "TaxCode": 1",
		  "Tax": "0.83",
		  "Total": "20.83",
		  "CustCode": "1234567",
		  "PCLevelIII": "Yes",
		  "CommodityCode": "123456",
		  "Shipping": "10.00",
		  "DestinationZip": "77008",
		  "DestinationCountryCode": "840",
		  "InvItems": [
		      {
		        "Code": "11111",
		        "Qty": "2",
		        "UOM": "Bag",
		        "Desc": "Sugar",
		        "Price": "6.00",
		        "Disc": "1.00",
		      }
		     ]
		    "Device": "ChipperBT",
		    "EncFormat": "BBPOS",
		    "EncData": "XXXXXXXXXXX",
		    "EmvData": "XXXXXXXXXXX"
		}
		
		
Example Response:
		
		JSON: {
		"XactID": "20181128124125-080880-369",
		"Success": "Y",
		"RespText": "APPROVED 010956",
		"AuthCode": "010956",
		"Invoice": "369",
		"Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",
		"EmvRespData": "AVS Match 9 Digit Zip and Address (X)",
		}
		
		
View Response Value Definitions
XactID A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:
TimeStamp-AccountNumber-InvoiceNumber
20181128124125-080880-123456
XactID's can include a fourth value followed by a dash:
20181128124125-080880-123456-0
  1. 0 - Declined
  2. 6 - Check
  3. 5 - Void
Success Indicates the success of the transaction
  1. Y - Approved
  2. N - Declined
  3. U - Unable to perform the transaction.
RespText The extended details of the "Success" indicator.
AuthCode The authorization code. This field is only present for credit/debit transactions.
Tran_token A unique token used for pulling the transaction's Response Values again.
EmvRespData A string of data returned from the processor for the EMV device.

Optional Fields

The following fields are optional and can be submitted with the transaction data.

Field Description
Invoice Invoice number, up to 8 digits. It is used for reporting and enables additional features. See the Invoice Number section for more information
Company The name of the cardholder's company.
FirstName The cardholder's first name.
LastName The cardholder's last name.
Phone The contact phone number for the transaction
Email If you submit a valid email address, eProcessingNetwork emails a transaction summary to the cardholder. If you do not want eProcessingNetwork to send an email confirmation but still provide the email address, also send the NOMAIL_CARDHOLDER field.
City The cardholder's city.
State The 2-character state abbreviation of the cardholder's state.
Tax The tax amount of the transaction. Only include the digits and the decimal point. If the tax value is not required, submit 0.00
Convenience The convenience fee amount. Regulations state this should not be more than 4% of the transaction total. Make sure to calculate it and send the calculated amount under this parameter. Only include the digits and the decimal point.
Surcharge The surcharge amount. Regulations state this should not be more than 3% of the transaction total and can only be applied to credit card transactions. Make sure to calculate it and send the calculated amount under this parameter. Only include the digits and the decimal point.
Shipping The shipping amount for the transaction.
Description Description of the transaction. For example, it could be what was ordered.
MerchReqID The merchant request ID. Up to 40 alpha-numeric characters. It is used to let the merchant track the status of a transaction. See the Merchant Request ID section for more information.
PostbackID In the Merchant Support Center's Processing Control Section you can set a Postback URL and the transaction response will be posted to that URL. You must provide a PostbackID and have a valid postback URL set to utilize this feature. See the "Postback Option" section for more details.
COMBINE_PB_RESPONSE Send a value of 1 if you wish to combine the postback response and the transaction response and have it returned.
IndustryType This field marks the transaction as a specific industry type to get a merchant the best available interchange rate. Send the one letter industry code that corresponds to the industry type.
  1. Retail - R
  2. Direct Marketing(MOTO) - D
  3. EComm - E
  4. Restaurant(WorldPay only) - F
MetaData A hash of key/value pairs that can store additional information about this transaction. (Max of 3)
NOMAIL_MERCHANT Send a value of 1 if you do not want to send the transaction email to the merchant.
NOMAIL_CARDHOLDER Send a value of 1 if you do not want to send the transaction email to the cardholder.
Request Example: <MerchReqID>123456ABC</MerchReqID>

<?xml version="1.0" encoding="utf-8"?>
<Request>
  <ePNAccount>080880</ePNAccount>
  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
  <RequestType>transaction</RequestType>
  <TranType>Sale</TranType>
  <Total>110.83</Total>
  <Address>123 Main Street</Address>
  <Zip>77008</Zip>
  <CardNo>4111111111111111</CardNo>
  <ExpMonth>12</ExpMonth>
  <ExpYear>28</ExpYear>
  <CVV2Type>1</CVV2Type>
  <CVV2>123</CVV2>
  <Invoice>123456</Invoice>
  <Company>Supplies Unlimited</Company>
  <FirstName>Yvonne</FirstName>
  <LastName>Foster</LastName>
  <Phone>800-971-0997</Phone>
  <Email>YvonneFoster@SuppliesUnlimited.com</Email>
  <City>New York</City>
  <State>NY</State>
  <Tax>0.83</Tax>
  <Shipping>10.00</Shipping>
  <Description>10 Bags of Sugar</Description>
  <MerchReqID>123456ABC</MerchReqID>
  <MetaData>
    <CustomField1>CustomValue1</CustomField1>
    <CustomField2>CustomValue2</CustomField2>
    <CustomField3>CustomValue3</CustomField3>
  </MetaData>
</Request>

Example Response:
		
		<?xml version="1.0" encoding="utf-8"?>
		<Response>
		  <XactID>20181128124125-080880-123456</XactID>
		  <Success>N</Success>
		  <RespText>Hold - Call</RespText>
		  <Invoice>369</Invoice>
		  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
		  <AVSCode>X</AVSCode>
		  <AVSText>AVS Match 9 Digit Zip and Address (X)</AVSText>
		  <CVV2Code>M</CVV2Code>
		  <CVV2Text>CVV2 Match (M)</CVV2Text>
		  <MerchReqID>123456ABC</MerchReqID>
		</Response>

		
		
Request Example: <MerchReqID>123456ABC</MerchReqID>

JSON: {
  "ePNAccount": "080880",
  "RestrictKey": "yFqqXJh9pqnugfr",
  "RequestType": "transaction",
  "TranType": "Sale",
  "Total": "100.00",
  "Address": "123 Main Street",
  "Zip": "77008",
  "CardNo": "4111111111111111",
  "ExpMonth": "12",
  "ExpYear": "29",
  "CVV2Type": "1",
  "CVV2": "123",
  "Invoice": "123456",
  "Company": "Supplies Unlimited",
  "FirstName": "Yvonne",
  "LastName": "Foster",
  "Phone": "800-971-0997",
  "Email": "YvonneFoster@SuppliesUnlimited.com",
  "City": "New York",
  "State": "NY",
  "Tax": "0.83",
  "Shipping": "10.00",
  "Description": "10 Bags of Sugar",
  "MerchReqID": "123456ABC",
  "MetaData":{
    "CustomField1": "CustomValue1",
    "CustomField2": "CustomValue2",
    "CustomField3": "CustomValue3",
  }
}

Example Response:
		
		JSON: {
		  "XactID": "20181128124125-080880-123456",
		  "Success": "N",
		  "RespText": "Hold - Call",
		  "Invoice": "369",
		  "Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",
		  "AVSCode": "X",
		  "AVSText": "AVS Match 9 Digit Zip and Address (X)",
		  "CVV2Code":  "M",
		  "CVV2Text": "CVV2 Match (M)",
		  "MerchReqID": "123456ABC"
		}
		
		
View Response Value Definitions
XactID A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:
TimeStamp-AccountNumber-InvoiceNumber
20181128124125-080880-123456
XactID's can include a fourth value followed by a dash:
20181128124125-080880-123456-0
  1. 0 - Declined
  2. 6 - Check
  3. 5 - Void
Success Indicates the success of the transaction
  1. Y - Approved
  2. N - Declined
  3. U - Unable to perform the transaction.
RespText The extended details of the "Success" indicator.
AuthCode The authorization code. This field is only present for credit/debit transactions.
Invoice The invoice number that is assigned this transaction. Max of 8 characters.
Tran_token A unique token used for pulling the transaction's Response Values again.
AVSCode The alpha code for the AVSText Response
AVSText The Address Verification response explanation returned by the card issuing bank.
CVV2Code The alpha code for the CVV2Text Response
CVV2Text The CVV2 Verification response explanation returned by the card issuing bank.
MerchReqID This value is reflected back from the original post. See the Merchant Request ID section for more information.

Dynamic / Soft Descriptor - (TSYS ONLY)

eProcessing Network gives merchants the ability to control the line item description displayed on the cardholder's credit card statement on a per transaction basis.

It is important to note that this feature is only available via our TDBE API for merchants that have a TSYS merchant account. The descriptor cannot exceed 25 characters.

Example: Let's use a fictitious subscription company we will call SAMPLE INC.and it sales magazines. If a cardholder purchases a 12 month subscription to TIME magazine for example,it would be suspicious to the cardholder to see a charge from a "SAMPLE INC" on the credit card statement. In this case, the Dynamic/Soft descriptor would allow this merchant to display "TIME Subscription" instead of SAMPLE INC.

To set a merchant up for this service, follow these steps:

  • Confirm gateway is setup to work with TSYS and has a TSYS processing account we can connect to.
  • Notify eProcessingNetwork what gateway ID needs this feature. (We need to set a flag on the account.)
  • A special field <MerchantName> needs to be passed in to be used as the descriptor. Make sure the field does not exceed 25 characters.

Field Description
MerchantName Then business name description to be displayed on the cardholder's credit card statement on a per transaction basis.
Request Example: <MerchantName>Time Magazine</MerchantName>
		
		<?xml version="1.0" encoding="utf-8"?>
		<Request>
		  <ePNAccount>080880</ePNAccount>
		  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
		  <RequestType>transaction</RequestType>
		  <TranType>Sale</TranType>
		  <Total>110.83</Total>
		  <Address>123 Main Street</Address>
		  <Zip>77008</Zip>
		  <CardNo>4111111111111111</CardNo>
		  <ExpMonth>12</ExpMonth>
		  <ExpYear>28</ExpYear>
		  <CVV2Type>1</CVV2Type>
		  <CVV2>123</CVV2>
		  <MerchantName>Time Magazine</MerchantName>
		  <Description>Year Subscription</Description>
		</Request>
		
		
Example Response:
		
		<?xml version="1.0" encoding="utf-8"?>
		<Response>
		  <XactID>20181128124125-080880-123456</XactID>
		  <Success>Y</Success>
		  <RespText>APPROVED 010956</RespText>
		  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
		  <AVSCode>X</AVSCode>
		  <AVSText>AVS Match 9 Digit Zip and Address (X)</AVSText>
		  <CVV2Code>M</CVV2Code>
		  <CVV2Text>CVV2 Match (M)</CVV2Text>
		</Response>

		
		
Request Example: <MerchantName>Time Magazine</MerchantName>
		
		JSON: {
		  "ePNAccount": "080880",
		  "RestrictKey": "yFqqXJh9pqnugfr",
		  "RequestType": "transaction",
		  "TranType": "Sale",
		  "Total": "100.00",
		  "Address": "123 Main Street",
		  "Zip": "77008",
		  "CardNo": "4111111111111111",
		  "ExpMonth": "12",
		  "ExpYear": "29",
		  "CVV2Type": "1",
		  "CVV2": "123",
		  "MerchantName": "Time Magazine"
		}
		
		
Example Response:
		
		JSON: {
		  "XactID": "20181128124125-080880-123456",
		  "Success": "Y",
		  "RespText": "APPROVED 010956",
		  "Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",
		  "AVSCode": "X",
		  "AVSText": "AVS Match 9 Digit Zip and Address (X)",
		  "CVV2Code":  "M",
		  "CVV2Text": "CVV2 Match (M)"
		}
		
		

View Response Value Definitions
XactID A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:
TimeStamp-AccountNumber-InvoiceNumber
20181128124125-080880-123456
XactID's can include a fourth value followed by a dash:
20181128124125-080880-123456-0
  1. 0 - Declined
  2. 6 - Check
  3. 5 - Void
Success Indicates the success of the transaction
  1. Y - Approved
  2. N - Declined
  3. U - Unable to perform the transaction.
RespText The extended details of the "Success" indicator.
AuthCode The authorization code. This field is only present for credit/debit transactions.
Invoice The invoice number that is assigned this transaction. Max of 8 characters.
Tran_token A unique token used for pulling the transaction's Response Values again.
AVSCode The alpha code for the AVSText Response
AVSText The Address Verification response explanation returned by the card issuing bank.
CVV2Code The alpha code for the CVV2Text Response
CVV2Text The CVV2 Verification response explanation returned by the card issuing bank.

ePNPlugin for QuickBooks™

You can associate a transaction with a QuickBooks™. Invoice, Sales Receipt or Credit Memo. If you associate a transaction with a QuickBooks Invoice, Sales Receipt or Credit Memo the ePNPlugIn Download Transaction Manager will auto-associate this with the appropriate QuickBooks transaction.

The transaction can be associated with one Invoice, one Sales Receipt or one Credit Memo using the AppData field.

To associate the transaction you need to pass in a field named <AppData> and the value of the field needs to be as the following table describes.

Make sure the Invoice, Sales Receipt or Credit Memo already exists before you run the ePNPlugIn Download Transactions Manager.
AppData DESCRIPTION
PlugInRefNum~1234 Notice the "~" character between PlugInRefNum and 1234. This character is a separator and allows the ePNPlugIn to parse this data. This associates this transaction with a QuickBooks Invoice number (in this case 1234).
PlugInSalesRefNum~3456 Notice the "~" character between PlugInSalesRefNum and 3456. This character is a separator and allows the ePNPlugIn to parse this data. This associates this transaction with a QuickBooks Sales Receipt number (in this case 3456).
PlugInCreditRefNum~7890 Notice the "~" character between PlugInCreditRefNum and 7890. This character is a separator and allows the ePNPlugIn to parse this data. This associates this transaction with a QuickBooks Credit Memo number (in this case 7890).

Request Example: <AppData>PlugInRefNum~1234<AppData>
		
		<?xml version="1.0" encoding="utf-8"?>
		<Request>
		 <ePNAccount>080880</ePNAccount>
		 <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
		 <RequestType>transaction</RequestType>
		 <TranType>Sale</TranType>
		 <Total>100.00</Total>
		 <Address>123 Main Street</Address>
		 <Zip>77008</Zip>
		 <CardNo>4111111111111111</CardNo>
		 <ExpMonth>12</ExpMonth>
		 <ExpYear>28</ExpYear>
		 <CVV2Type>1</CVV2Type>
		 <CVV2>123</CVV2>
		 <AppData>PlugInRefNum~1234</AppData>
		</Request>
		
		
Example Response:
		
		<?xml version="1.0" encoding="utf-8"?>
		<Response>
		 <XactID>20181128124125-080880-369</XactID>
		 <RespText>APPROVED 010956</RespText>
		 <AuthCode>010956</AuthCode>
		 <Invoice>369</Invoice>
		 <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
		 <AVSCode>X</AVSCode>
		 <AVSText>AVS Match 9 Digit Zip and Address (X)</AVSText>
		 <CVV2Code>M</CVV2Code>
		 <CVV2Text>CVV2 Match (M)</CVV2Text>
		</Response>
		
		
Card Not Present Request
		
		JSON: {
		  "ePNAccount": "080880",
		  "RestrictKey": "yFqqXJh9pqnugfr",
		  "RequestType": "transaction",
		  "TranType": "Sale",
		  "Total": "100.00",
		  "Address": "123 Main Street",
		  "Zip": "77008",
		  "CardNo": "4111111111111111",
		  "ExpMonth": "12",
		  "ExpYear": "29",
		  "CVV2Type": "1",
		  "CVV2": "123",
		  "AppData" "PlugInRefNum~1234"
		}
		
		
Example Response:
		
		JSON: {
		  "XactID": "20181128124125-080880-369",
		  "Success": "Y",
		  "RespText": "APPROVED 010956",
		  "AuthCode": "010956",
		  "Invoice": "369",
		  "Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",,
		  "AVSCode": "X",
		  "AVSText": "AVS Match 9 Digit Zip and Address (X)",
		  "CVV2Code":  "M",
		  "CVV2Text": "CVV2 Match (M)"
		}
		
		
View Response Value Definitions
XactID A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:
TimeStamp-AccountNumber-InvoiceNumber
20181128124125-080880-123456
XactID's can include a fourth value followed by a dash:
20181128124125-080880-123456-0
  1. 0 - Declined
  2. 6 - Check
  3. 5 - Void
Success Indicates the success of the transaction
  1. Y - Approved
  2. N - Declined
  3. U - Unable to perform the transaction.
RespText The extended details of the "Success" indicator.
AuthCode The authorization code. This field is only present for credit/debit transactions.
Invoice The invoice number that is assigned this transaction. Max of 8 characters.
Tran_token A unique token used for pulling the transaction's Response Values again.
AVSCode The alpha code for the AVSText Response.
AVSText The Address Verification response explanation returned by the card issuing bank.
CVV2Code The alpha code for the CVV2Text Response.
CVV2Text The CVV2 Verification response explanation returned by the card issuing bank.
CVV2Text The CVV2 Verification response explanation returned by the card issuing bank.

Postback Option with TDBE via Processing Controls

You may provide a TDBE Postback URL to allow a Postback with the transaction response from the TDBE. This transaction response is sent to the specified URL if the PostbackID parameter is passed within the TDBE POST

The Postback will be of content-type "application/x-www-form-urlencoded" and include the provided PostbackID, as well as the full response (as normally returned): XactID, Invoice, AVS Response, and CVV Response

You may provide the Postback URL by accessing the Processing Controls section from the sidebar and navigating to the "TDBE Postback" section.

If you wish for your app to recieve the transaction response and the postback response, send the parameter COMBINE_PB_RESPONSE with a value of 1. The postback response will appear under the PostbackResponse element within the transaction response. If you still submit transactions with the "application/x-www-form-urlencoded" content type, the postback response will appear in the CSV string like "PostbackResponse=...".

If you wish to have other parameters reflected in the postback, you need to not only send the original parameter, but also the same parameters with "Postback." prepended to it. Ex: Postback.Description, Postback.FirstName, Postback.LastName, etcetera

Fields with sensitive data will NOT be posted back. See the list below:

  • Postback.CardNo
  • Postback.ExpMonth
  • Postback.ExpYear
  • Postback.CVV2
  • Postback.NCNAccountNum
  • Postback.NCNDLNum
  • Postback.IdentitySSN4
  • Postback.IdentityDOB
  • Postback.IdentityDOBYear
  • Postback.Check21ImageBytes1
  • Postback.Check21ImageBytes2
  • Postback.PINBlock
  • Postback.KeySerial
  • Postback.EncData
  • Postback.EmvData

Request Example (No COMBINE_PB_RESPONSE):
		
<?xml version="1.0" encoding="utf-8"?>
<Request>
 <ePNAccount>080880</ePNAccount>
 <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
 <RequestType>transaction</RequestType>
 <TranType>Sale</TranType>
 <Total>100.00</Total>
 <Address>123 Main Street</Address>
 <Zip>77008</Zip>
 <CardNo>4111111111111111</CardNo>
 <ExpMonth>12</ExpMonth>
 <ExpYear>28</ExpYear>
 <CVV2Type>1</CVV2Type>
 <CVV2>123</CVV2>
 <PostbackID>ABC-123</PostbackID>
 <Company>DemoCo</Company>
 <Postback.Company>DemoCo</Postback.Company>
 <Description>ExampleTransaction</Description>
 <Postback.Description>ExampleTransaction</Postback.Description>
</Request>
        
		
Example Postback Response (No COMBINE_PB_RESPONSE):
		
ePNAccount: 080880
TranType: Sale
PostbackID: ABC-123
FullResponse: "YAPPROVED 018602","AVS Match 9 Digit Zip and Address (X)","CVV2 Match (M)","179132","20220815113947-080880-179132"
Response: YAPPROVED 018602
AVSResponse: AVS Match 9 Digit Zip and Address (X)
CVV2Response: CVV2 Match (M)
Invoice: 179132
XactID: 20220815113947-080880-179132
Postback.Company: DemoCo
Postback.Description: ExampleTransaction
        
		
Request Example
		
		JSON: {
		  "ePNAccount": "080880",
		  "RestrictKey": "yFqqXJh9pqnugfr",
		  "RequestType": "transaction",
		  "TranType": "Sale",
		  "Total": "100.00",
		  "Address": "123 Main Street",
		  "Zip": "77008",
		  "CardNo": "4111111111111111",
		  "ExpMonth": "12",
		  "ExpYear": "29",
		  "CVV2Type": "1",
		  "CVV2": "123",
		  "PostbackID" "ABC-123"
		  "Company" "DemoCo"
		  "Postback.Company" "DemoCo"
		  "Description" "ExampleTransaction"
		  "Postback.Description" "ExampleTransaction"
		}
		
		
Example Postback Response:
		
ePNAccount: 080880
TranType: Sale
PostbackID: ABC-123
FullResponse: "YAPPROVED 018602","AVS Match 9 Digit Zip and Address (X)","CVV2 Match (M)","179132","20220815113947-080880-179132"
Response: YAPPROVED 018602
AVSResponse: AVS Match 9 Digit Zip and Address (X)
CVV2Response: CVV2 Match (M)
Invoice: 179132
XactID: 20220815113947-080880-179132
Postback.Company: DemoCo
Postback.Description: ExampleTransaction
        
		

Testing Key Response Values

When testing, you can trigger an expected response value based on the specific key value submitted.


<Success>

The Success Key can be one of three values to indicate if the transaction was successful or not.

  1. Y - Approved
  2. N - Declined
  3. U - Unable to process the transaction.

Total Success Key Value
2.02 Y - Approved
2.01 N - Declined
2.011 U - Unable to process the transaction.
Request Example: <Total>2.02</Total>
		
		<?xml version="1.0" encoding="utf-8"?>
		<Request>
		  <ePNAccount>080880</ePNAccount>
		  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
		  <RequestType>transaction</RequestType>
		  <TranType>Sale</TranType>
		  <Total>2.02</Total>
		  <Address>123 Main Street</Address>
		  <Zip>77008</Zip>
		  <CardNo>4111111111111111</CardNo>
		  <ExpMonth>12</ExpMonth>
		  <ExpYear>28</ExpYear>
		  <CVV2Type>1</CVV2Type>
		  <CVV2>123</CVV2>
		</Request>
		
		
Example Response:
		
		<?xml version="1.0" encoding="utf-8"?>
		<Response>
		  <XactID>20181128124125-080880-123456</XactID>
		  <Success>Y</Success>
		  <RespText>APPROVED 010956</RespText>
		  <AuthCode>010956</AuthCode>
		  <Invoice>369</Invoice>
		  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
		  <AVSCode>X</AVSCode>
		  <AVSText>AVS Match 9 Digit Zip and Address (X)</AVSText>
		  <CVV2Code>M</CVV2Code>
		  <CVV2Text>CVV2 Match (M)</CVV2Text>
		</Response>
		
		
Request Example: <Total>2.02</Total>
		
		JSON: {
		  "ePNAccount": "080880",
		  "RestrictKey": "yFqqXJh9pqnugfr",
		  "RequestType": "transaction",
		  "TranType": "Sale",
		  "Total": "2.02",
		  "Address": "123 Main Street",
		  "Zip": "77008",
		  "CardNo": "4111111111111111",
		  "ExpMonth": "12",
		  "ExpYear": "29",
		  "CVV2Type": "1",
		  "CVV2": "123"
		}
		
		
Example Response:
		
		JSON: {
		  "XactID": "20181128124125-080880-123456",
		  "Success": "Y",
		  "RespText": "APPROVED 010956",
		  "AuthCode": "010956",
		  "Invoice": "369",
		  "Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",
		  "AVSCode": "X",
		  "AVSText": "AVS Match 9 Digit Zip and Address (X)",
		  "CVV2Code":  "M",
		  "CVV2Text": "CVV2 Match (M)"
		}
		
		
View Response Value Definitions
XactID A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:
TimeStamp-AccountNumber-InvoiceNumber
20181128124125-080880-123456
XactID's can include a fourth value followed by a dash:
20181128124125-080880-123456-0
  1. 0 - Declined
  2. 6 - Check
  3. 5 - Void
Success Indicates the success of the transaction
  1. Y - Approved
  2. N - Declined
  3. U - Unable to perform the transaction.
RespText The extended details of the "Success" indicator.
AuthCode The authorization code. This field is only present for credit/debit transactions.
Invoice The invoice number that is assigned this transaction. Max of 8 characters.
Tran_token A unique token used for pulling the transaction's Response Values again.
AVSCode The alpha code for the AVSText Response
AVSText The Address Verification response explanation returned by the card issuing bank.
CVV2Code The alpha code for the CVV2Text Response
CVV2Text The CVV2 Verification response explanation returned by the card issuing bank.

<RespText>

Specific <Total> amounts can be submitted to trigger the following responses.

Total RespText
0.00 Amount Error
0.01 Call
0.05 Hold - Call
0.29 Expired Card
0.39 No Such Issuer
0.41 RE-ENTER
0.43 Serv Not Allowed
0.48 CVV Mismatch
0.49 Card OK
0.51 Prompt for Level II Data
0.53 Prompt for Level III Data
21.11 FAILURE
22.11 INVALID MRCH
22.21 System Busy
22.31 Timeout
22.41 Communication Error
22.51 BLOCK
Request Example: <Total>0.05</Total>
		
		<?xml version="1.0" encoding="utf-8"?>
		<Request>
		  <ePNAccount>080880</ePNAccount>
		  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
		  <RequestType>transaction</RequestType>
		  <TranType>Sale</TranType>
		  <Total>0.05</Total>
		  <Address>123 Main Street</Address>
		  <Zip>77008</Zip>
		  <CardNo>4111111111111111</CardNo>
		  <ExpMonth>12</ExpMonth>
		  <ExpYear>28</ExpYear>
		  <CVV2Type>1</CVV2Type>
		  <CVV2>123</CVV2>
		</Request>
		
		
Example Response:
		
		<?xml version="1.0" encoding="utf-8"?>
		<RespText>
		  <XactID>20181128124125-080880-123456</XactID>
		  <Success>N</Success>
		  <RespText>Hold - Call</RespText>
		  <Invoice>369</Invoice>
		  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
		  <AVSCode>X</AVSCode>
		  <AVSText>AVS Match 9 Digit Zip and Address (X)</AVSText>
		  <CVV2Code>M</CVV2Code>
		  <CVV2Text>CVV2 Match (M)</CVV2Text>
		</Response>
		
		
Request Example: <Total>0.05</Total>
		
		JSON: {
		  "ePNAccount": "080880",
		  "RestrictKey": "yFqqXJh9pqnugfr",
		  "RequestType": "transaction",
		  "TranType": "Sale",
		  "Total": "0.05",
		  "Address": "123 Main Street",
		  "Zip": "77008",
		  "CardNo": "4111111111111111",
		  "ExpMonth": "12",
		  "ExpYear": "29",
		  "CVV2Type": "1",
		  "CVV2": "123"
		}
		
		
Example Response:
		
		JSON: {
		  "XactID": "20181128124125-080880-123456",
		  "Success": "N",
		  "RespText": "Hold - Call",
		  "AuthCode": "010956",
		  "Invoice": "369",
		  "Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",
		  "AVSCode": "X",
		  "AVSText": "AVS Match 9 Digit Zip and Address (X)",
		  "CVV2Code":  "M",
		  "CVV2Text": "CVV2 Match (M)",
		  "MerchReqID": "123456ABC"
		}
		
		
View Response Value Definitions
XactID A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:
TimeStamp-AccountNumber-InvoiceNumber
20181128124125-080880-123456
XactID's can include a fourth value followed by a dash:
20181128124125-080880-123456-0
  1. 0 - Declined
  2. 6 - Check
  3. 5 - Void
Success Indicates the success of the transaction
  1. Y - Approved
  2. N - Declined
  3. U - Unable to perform the transaction.
RespText The extended details of the "Success" indicator.
AuthCode The authorization code. This field is only present for credit/debit transactions.
Invoice The invoice number that is assigned this transaction. Max of 8 characters.
Tran_token A unique token used for pulling the transaction's Response Values again.
AVSCode The alpha code for the AVSText Response
AVSText The Address Verification response explanation returned by the card issuing bank.
CVV2Code The alpha code for the CVV2Text Response
CVV2Text The CVV2 Verification response explanation returned by the card issuing bank.

<AVSCode> & <AVSText>

To receive a specific set of Address Verification System responses values;<AVSCode> & <AVSText>, pass in one of the following values for the <Address>.

Address AVSCode AVSText
1000 A Address Matches, Zip Code does not Match
1001 E Error Response
1002 N Address and Zip Code do not match
1003 R Retry, System Not Available
1004 S Service Not Supported
1005 U Address Information is Not Available
1006 W 9 digit Zip Code matches, Address does not match
1007 X Exact Match of Address and Zip Code
1008 Y Match of Address and 5 digit Zip Code
1009 Z 5 digit Zip Code matches, Address does not match
1010 G Non AVS Participant Outside of U.S.
1011 B Street Address matches for international transaction. Postal Code not verified due to incompatible formats
1012 C Street Address and Postal Code not verified for international transaction due to incompatible formats
1013 D Street Address and Postal Code match for international transaction
1014 I Address information is not verified for international transaction
1015 M Street Address and Postal Code match for international transaction
1016 P Postal Code matches for international transaction. Street Address not verified due to incompatible formats
1017 Unknown Response (The AVSCode is an empty space when an Unknow Response is given)
Request Example: <Address>1006 Main Street</Address>
		
		<?xml version="1.0" encoding="utf-8"?>
		<Request>
		  <ePNAccount>080880</ePNAccount>
		  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
		  <RequestType>transaction</RequestType>
		  <TranType>Sale</TranType>
		  <Total>100.00</Total>
		  <Address>1006 Main Street</Address>
		  <Zip>77008</Zip>
		  <CardNo>4111111111111111</CardNo>
		  <ExpMonth>12</ExpMonth>
		  <ExpYear>28</ExpYear>
		  <CVV2Type>1</CVV2Type>
		  <CVV2>123</CVV2>
		</Request>
		
		
Example Response:
		
		<?xml version="1.0" encoding="utf-8"?>
		<RespText>
		  <XactID>20181128124125-080880-123456</XactID>
		  <Success>Y</Success>
		  <RespText>Hold - Call</RespText>
		  <Invoice>369</Invoice>
		  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
		  <AVSCode>W</AVSCode>
		  <AVSText>9 Digit Zip Code Matches, Address Fosters Not Match</AVSText>
		  <CVV2Code>M</CVV2Code>
		  <CVV2Text>CVV2 Match</CVV2Text>
		</Response>
		
		
Request Example: <Address>1006 Main Street</Address>
		
		JSON: {
		  "ePNAccount": "080880",
		  "RestrictKey": "yFqqXJh9pqnugfr",
		  "RequestType": "transaction",
		  "TranType": "Sale",
		  "Total": "100.00",
		  "Address": "1006 Main Street",
		  "Zip": "77008",
		  "CardNo": "4111111111111111",
		  "ExpMonth": "12",
		  "ExpYear": "29",
		  "CVV2Type": "1",
		  "CVV2": "123"
		}
		
		
Example Response:
		
		JSON: {
		  "XactID": "20181128124125-080880-123456",
		  "Success": "Y",
		  "AuthCode": "010956",
		  "Invoice": "369",
		  "Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",
		  "AVSCode": "W",
		  "AVSText": "9 Digit Zip Code Matches, Address Fosters Not Match",
		  "CVV2Code":  "M",
		  "CVV2Text": "CVV2 Match (M)"
		}
		
		
View Response Value Definitions
XactID A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:
TimeStamp-AccountNumber-InvoiceNumber
20181128124125-080880-123456
XactID's can include a fourth value followed by a dash:
20181128124125-080880-123456-0
  1. 0 - Declined
  2. 6 - Check
  3. 5 - Void
Success Indicates the success of the transaction
  1. Y - Approved
  2. N - Declined
  3. U - Unable to perform the transaction.
RespText The extended details of the "Success" indicator.
AuthCode The authorization code. This field is only present for credit/debit transactions.
Invoice The invoice number that is assigned this transaction. Max of 8 characters.
Tran_token A unique token used for pulling the transaction's Response Values again.
AVSCode The alpha code for the AVSText Response
AVSText The Address Verification response explanation returned by the card issuing bank.
CVV2Code The alpha code for the CVV2Text Response
CVV2Text The CVV2 Verification response explanation returned by the card issuing bank.

<CVV2Code> & <CVV2Text>

By default, the TDBE returns a response of:
<CVV2Code>M</CVV2Code>
<CVV2Text>Card Verification Value matches</CVV2Text>

To receive a specific response values, submit one of the following values as the first the <CVV2> value.

CVV2 CVV2Code CVV2Text
100 M Card Verification Value matches
101 N Card Verification does not match
102 P Not Processed
103 R3 Card should have a Card Verification Value, Merchant indicated Value is not present
104 U Issuer Not Certified
105 Unknown Response (The CVV2Code is an empty space when an Unknow Response is given)
Request Example: <CVV2>103</CVV2>
		
		<?xml version="1.0" encoding="utf-8"?>
		<Request>
		  <ePNAccount>080880</ePNAccount>
		  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
		  <RequestType>transaction</RequestType>
		  <TranType>Sale</TranType>
		  <Total>100.00</Total>
		  <Address>1006 Main Street</Address>
		  <Zip>77008</Zip>
		  <CardNo>4111111111111111</CardNo>
		  <ExpMonth>12</ExpMonth>
		  <ExpYear>28</ExpYear>
		  <CVV2Type>1</CVV2Type>
		  <CVV2>123</CVV2>
		</Request>
		
		
Example Response:
		
		<?xml version="1.0" encoding="utf-8"?>
		<RespText>
		  <XactID>20181128124125-080880-123456</XactID>
		  <Success>N</Success>
		  <RespText>Hold - Call</RespText>
		  <Invoice>369</Invoice>
		  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
		  <AVSCode>W</AVSCode>
		  <AVSText>9 Digit Zip Code Matches, Address Fosters Not Match</AVSText>
		  <CVV2Code>R3</CVV2Code>
		  <CVV2Text>Card should have a Card Verification Value, Merchant indicated Value is not present</CVV2Text>
		</Response>
		
		
Request Example: <CVV2>103</CVV2>
		
		JSON: {
		  "ePNAccount": "080880",
		  "RestrictKey": "yFqqXJh9pqnugfr",
		  "RequestType": "transaction",
		  "TranType": "Sale",
		  "Total": "100.00",
		  "Address": "1234 Main Street",
		  "Zip": "77008",
		  "CardNo": "4111111111111111",
		  "ExpMonth": "12",
		  "ExpYear": "29",
		  "CVV2Type": "1",
		  "CVV2": "103"
		}
		
		
Example Response:
		
		JSON: {
		  "XactID": "20181128124125-080880-123456",
		  "Success": "N",
		  "AuthCode": "010956",
		  "Invoice": "369",
		  "Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",
		  "AVSCode": "W",
		  "AVSText": "9 Digit Zip Code Matches, Address Fosters Not Match",
		  "CVV2Code":  "R3",
		  "CVV2Text": "Card should have a Card Verification Value, Merchant indicated Value is not present"
		}
		
		
View Response Value Definitions
XactID A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:
TimeStamp-AccountNumber-InvoiceNumber
20181128124125-080880-123456
XactID's can include a fourth value followed by a dash:
20181128124125-080880-123456-0
  1. 0 - Declined
  2. 6 - Check
  3. 5 - Void
Success Indicates the success of the transaction
  1. Y - Approved
  2. N - Declined
  3. U - Unable to perform the transaction.
RespText The extended details of the "Success" indicator.
AuthCode The authorization code. This field is only present for credit/debit transactions.
Invoice The invoice number that is assigned this transaction. Max of 8 characters.
Tran_token A unique token used for pulling the transaction's Response Values again.
AVSCode The alpha code for the AVSText Response
AVSText The Address Verification response explanation returned by the card issuing bank.
CVV2Code The alpha code for the CVV2Text Response
CVV2Text The CVV2 Verification response explanation returned by the card issuing bank.

Integration Diagnostic Tool

https://www.eprocessingnetwork.com/cgi-bin/reflect/transact.pl

Follow the steps below to diagnose problems you may encounter with your integration. This URL will generate a web page that displays exactly what was sent to it, helping you confirm that you are sending the required information correctly.

  1. Temporarily change the URL to which you are posting your transaction to https://www.eprocessingnetwork.com/cgi-bin/reflect/transact.pl
  2. Include <Email>myemail@gmail.com</Email> to send a reflection of your variables and their value to that email address.
  3. Include <MerchantEmail>on</MerchantEmail> to have the sytem send an diagnostic reflection of your variables to the email address we have on file for the merchant.
  4. Include <PostURL>URL</PostURL>with the URL that you are posting to.

Integration Diagnostic Tool Page Example:
Integration Diagnostic Tool Page Example:
Integration Diagnostics

Advanced Recurring Billing

Additional Account Requirement: Advanced Recur

In order to use Advanced Recur Billing, your ePN Account must be setup for Internet payment processing and Advanced Recur before any recur transaction data is submitted. You can view your recurring transactions in the Merchant Support Center at www.eprocessingnetwork.com/msclogin.html and navigating to the Recur Billing section. There are two ways to create recurring transactions with the TDBE:

Recurring Description
On the Fly Define the periods and amounts for the recurring transaction when you submit the recurring transaction request to the TDBE.
Recur Methods Preset recurring methods that define the period and amount for a recurring transaction.

Recur Postback URL

The Recur System can post a message to your application each time it runs a recurring transaction. To receive a postback, set your Postback URL on the Recur Billing page in the Merchant Support Center.

To set up login to: https://www.eprocessingnetwork.com/msc

The Recur System can post a message to your application each time it runs a recurring transaction. Once you are logged in, choose Recur Billing then look for Recur Postback URL. The URL must be HTTPS and cannot have a question mark (?) in it. Once you have entered your URL click the .

The postback includes the standard transaction information including approval values, invoice number and transaction, customer data, and recurring period. The postback also returns the following values:

Field Description
Postback Type The value "recur" indicates this postback comes from the recurring system.
Postback Time The timestamp when the recurring system first sent the postback.
Postback Attempt The number of times eProcessingNetwork attempted the postback. The first attempt has a value of 0; the value increments for each subsequent attempt. eProcessingNetwork attempts the postback for up to 48 hours until successful.
Recur Operation Recur System event that triggered the postback. The value "ExecuteRecur" indicates that this is a normal recur transaction.

The Recur System sends a post with the following values to the URL specified Execute transactions:

Recur Execute PostBack

The Recur System sends the following to the postback URL for Cancel transactions:

Recur Execute PostBack

On The Fly

If you want to process of each of your order details in your recurring transaction separately, you can set the details for each transaction as you submit it. This is creating a Recur on the Fly. Use the following fields to create a recurring transaction on the fly.
Notice: In the Request Example the <Total>100.00</Total> and <RCRRecurAmount>50.00</RCRRecurAmount>so this transaction would be charged 100.00 now and 50.00 when it recurs in a month.

Field Description
RequestType transaction
TranType Sale
RecurMethodID 0 Submit the value "0" to indicate you are creating a recurring transaction on the fly.
Identifier Golden Member A catagory to identify the type of recurring transaction you are creating.
RCRRecurAmount The amount that will be charged each time the transaction recurs.
RCRPeriod Accepted Values:
  • Weekly
  • BiWeekly
  • Monthly
  • 2Months
  • 3Months
  • 6Months
  • 12Months
RCRRecurs 0 This is the number of recurs, how many times you want the recurring transaction to be processed. Submit 0 (zero) to process the recur until it is explicitly canceled or set a numeric vale like 10 and it will recur for 10 payments and then stop.
RCRChargeWhen OnDayOfCycle
RCRStartOn MM~DD~YYYY The date you want to start the recurrence. Using in the format MM~DD~YYYY. For example, 10~31~2025. The delimiter is the " ~ " character. All recurrences will take place based on the value set in the RCRPeriod.
Request Example: <RecurMethodID>0</RecurMethodID>

<?xml version="1.0" encoding="utf-8"?>
<Request>
  <ePNAccount>080880</ePNAccount>
  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
  <RequestType>transaction</RequestType>
  <TranType>Sale</TranType>
  <Total>100.00</Total>
  <Address>123 Main Street</Address>
  <Zip>77008</Zip>
  <CardNo>4111111111111111</CardNo>
  <ExpMonth>12</ExpMonth>
  <ExpYear>28</ExpYear>
  <CVV2Type>1</CVV2Type>
  <CVV2>123</CVV2>
  <RecurMethodID>0</RecurMethodID>
  <Identifier>Golden Member </Identifier>
  <RCRRecurAmount>50.00</RCRRecurAmount>
  <RCRPeriod>Monthly</RCRPeriod>
  <RCRRecurs>0</RCRRecurs>
  <RCRChargeWhen>OnDayOfCycle</RCRStartOnDay>
  <RCRStartOnDay>10~31~2025</RCRPeriod>
</Request>

Example Response:

<?xml version="1.0" encoding="utf-8"?>
<Response>
  <XactID>20181128124125-080880-369</XactID>
  <RespText>APPROVED 010956</RespText>
  <AuthCode>010956</AuthCode>
  <Invoice>369</Invoice>
  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
  <AVSCode>X</AVSCode>
  <AVSText>AVS Match 9 Digit Zip and Address (X)</AVSText>
  <CVV2Code>M</CVV2Code>
  <CVV2Text>CVV2 Match (M)</CVV2Text>
  <RecurID>369</RecurID>
</Response>

Request Example: <RecurMethodID>0</RecurMethodID>

JSON: {
  "ePNAccount": "080880",
  "RestrictKey": "yFqqXJh9pqnugfr",
  "RequestType": "transaction",
  "TranType": "Sale",
  "Total": "100.00",
  "Address": "123 Main Street",
  "Zip": "77008",
  "CardNo": "4111111111111111",
  "ExpMonth": "12",
  "ExpYear": "29",
  "CVV2Type": "1",
  "CVV2": "123",
  "RecurMethodID": "0",
  "Identifier": "Monthly",
  "RCRRecurAmount": "50.00",
  "RCRRecurs": "0",
  "RCRChargeWhen": "OnDayOfCycle",
  "RCRStartOnDay": "10~31~2025"
}

Example Response:

JSON: {
  "XactID": "20181128124125-080880-369",
  "Success": "Y",
  "RespText": "APPROVED 010956",
  "AuthCode": "010956",
  "Invoice": "369",
  "Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",,
  "AVSCode": "X",
  "AVSText": "AVS Match 9 Digit Zip and Address (X)",
  "CVV2Code":  "M",
  "CVV2Text": "CVV2 Match (M)",
  "RecurID":  "369"
}

View Response Value Definitions
XactID A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:
TimeStamp-AccountNumber-InvoiceNumber
20181128124125-080880-123456
XactID's can include a fourth value followed by a dash:
20181128124125-080880-123456-0
  1. 0 - Declined
  2. 6 - Check
  3. 5 - Void
Success Indicates the success of the transaction
  1. Y - Approved
  2. N - Declined
  3. U - Unable to perform the transaction.
RespText The extended details of the "Success" indicator.
AuthCode The authorization code. This field is only present for credit/debit transactions.
Invoice The invoice number that is assigned this transaction. Max of 8 characters.
Tran_token A unique token used for pulling the transaction's Response Values again.
AVSCode The alpha code for the AVSText Response
AVSText The Address Verification response explanation returned by the card issuing bank.
CVV2Code The alpha code for the CVV2Text Response
CVV2Text The CVV2 Verification response explanation returned by the card issuing bank.
RecurID This is the record number established by the ePNRecur System and can be used later to find this particular record.

Preset RecurMethodID's

To set up login to: https://www.eprocessingnetwork.com/msc

Recur methods allow you to set the parameters of the recur billing on your website. You can customize when recurs run, the amount of the recur and how many times the recur will process. When you submit the recurring transaction request to the TDBE, you simply submit the RecurMethodID you created. To set up a recurring method, choose Recur Billing On the left hand side of the page, click Recur Billing. Scroll to Create New Recurring Method to create your recur billing method. A Recurring Method ID: # will be generated and you will use that number for the RecurMethodID field.

Field Description
RequestType transaction
TranType Sale
RecurMethodID The Recurring Method ID established in the Merchant Support Center defining the paramaters for the recurring transaction.
Identifier Golden Member A category to identify the type of recurring transaction you are creating.
RecurAmountOverride Optional amount value. If you include this value, the recurring transaction will be processed for this value instead of the amount set in the recurring method.
Request Example: <RecurMethodID>1</RecurMethodID>
		
		<?xml version="1.0" encoding="utf-8"?>
		<Request>
		  <ePNAccount>080880</ePNAccount>
		  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
		  <RequestType>transaction</RequestType>
		  <TranType>Sale</TranType>
		  <Total>100.00</Total>
		  <Address>123 Main Street</Address>
		  <Zip>77008</Zip>
		  <CardNo>4111111111111111</CardNo>
		  <ExpMonth>12</ExpMonth>
		  <ExpYear>28</ExpYear>
		  <CVV2Type>1</CVV2Type>
		  <CVV2>123</CVV2>
		  <RecurMethodID>0</RecurMethodID>
		  <Identifier>Golden Member </Identifier>
		</Request>
		
		
Example Response:
		
		<?xml version="1.0" encoding="utf-8"?>
		<Response>
		  <XactID>20181128124125-080880-369</XactID>
		  <RespText>APPROVED 010956</RespText>
		  <AuthCode>010956</AuthCode>
		  <Invoice>369</Invoice>
		  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
		  <AVSCode>X</AVSCode>
		  <AVSText>AVS Match 9 Digit Zip and Address (X)</AVSText>
		  <CVV2Code>M</CVV2Code>
		  <CVV2Text>CVV2 Match (M)</CVV2Text>
		  <RecurID>369</RecurID>
		</Response>
		
		
Request Example: <RecurMethodID>0</RecurMethodID>
		
		JSON: {
		  "ePNAccount": "080880",
		  "RestrictKey": "yFqqXJh9pqnugfr",
		  "RequestType": "transaction",
		  "TranType": "Sale",
		  "Total": "100.00",
		  "Address": "123 Main Street",
		  "Zip": "77008",
		  "CardNo": "4111111111111111",
		  "ExpMonth": "12",
		  "ExpYear": "29",
		  "CVV2Type": "1",
		  "CVV2": "123",
		  "RecurMethodID": "1",
		  "Identifier": "Golden Member",

		}
		
		
Example Response:
		
		JSON: {
		  "XactID": "20181128124125-080880-369",
		  "Success": "Y",
		  "RespText": "APPROVED 010956",
		  "AuthCode": "010956",
		  "Invoice": "369",
		  "Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",,
		  "AVSCode": "X",
		  "AVSText": "AVS Match 9 Digit Zip and Address (X)",
		  "CVV2Code":  "M",
		  "CVV2Text": "CVV2 Match (M)",
		  "RecurID":  "369"
		}
		
		
View Response Value Definitions
XactID A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:
TimeStamp-AccountNumber-InvoiceNumber
20181128124125-080880-123456
XactID's can include a fourth value followed by a dash:
20181128124125-080880-123456-0
  1. 0 - Declined
  2. 6 - Check
  3. 5 - Void
Success Indicates the success of the transaction
  1. Y - Approved
  2. N - Declined
  3. U - Unable to perform the transaction.
RespText The extended details of the "Success" indicator.
AuthCode The authorization code. This field is only present for credit/debit transactions.
Invoice The invoice number that is assigned this transaction. Max of 8 characters.
Tran_token A unique token used for pulling the transaction's Response Values again.
AVSCode The alpha code for the AVSText Response
AVSText The Address Verification response explanation returned by the card issuing bank.
CVV2Code The alpha code for the CVV2Text Response
CVV2Text The CVV2 Verification response explanation returned by the card issuing bank.
RecurID This is the record number established by the ePNRecur System and can be used later to find this particular record.

Cancel Recurring Transaction

Post to: https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/recur.pl

To cancel a recurring transaction, you must provide the RecurID and the following fileds:

Field Description
ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
RequestType recur
TranType Cancel See Transaction Types for more options.
RecurID This is the record number established by the ePNRecur System.
Request Example: <TranType>Cancel</TranType>
		
		<?xml version="1.0" encoding="utf-8"?>
		<Request>
		  <ePNAccount>080880</ePNAccount>
		  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
		  <RequestType>recur</RequestType>
		  <TranType>Cancel</TranType>
		  <RecurID>369</RecurID>
		</Request>
		
		
Example Response:
		
		<?xml version="1.0" encoding="utf-8"?>
		<Response>
		  <Success>Y</Success>
		  <RespText>Successful</RespText>
		</Response>
		
		
Request Example: <TranType>Cancel</TranType>
			
			JSON: {
			  "ePNAccount": "080880",
			  "RestrictKey": "yFqqXJh9pqnugfr",
			  "RequestType": "recur",
			  "TranType": "Cancel",
			  "RecurID": "369"
			}
			
			
Example Response:
			
			JSON: {
			  "Success": "Y",
			  "RespText": "Successful"
			}
			
			
View Response Value Definitions
Success Indicates the success of the transaction
  1. Y - Successful
  2. N - Declined
RespText The extended details of the "Success" indicator.

Update Card On File

Post to: https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/recur.pl

To update the card data on file for a recurring records, post the following:

Field Description
ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
RequestType recur
TranType ModifyCreditCard See Transaction Types for more options.
CardNo The credit card number.
ExpMonth The 2-digit credit card expiration month, 01 through 12.
ExpYear The 2-digit credit card expiration year. For example, 28 for 2028.
RecurID This is the record number established by the ePNRecur System.
Request Example: <TranType>ModifyCreditCard</TranType>
		
		<?xml version="1.0" encoding="utf-8"?>
		<Request>
		  <ePNAccount>080880</ePNAccount>
		  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
		  <RequestType>recur</RequestType>
		  <TranType>ModifyCreditCard</TranType>
		  <CardNo>4111111111111111</CardNo>
		  <ExpMonth>12</ExpMonth>
		  <ExpYear>28</ExpYear>
		  <CVV2Type>1</CVV2Type>
		  <CVV2>123</CVV2>
		  <RecurID>369</RecurID>
		</Request>
		
		
Example Response:
		
		<?xml version="1.0" encoding="utf-8"?>
		<Response>
		  <Success>Y</Success>
		  <RespText>Successful</RespText>
		</Response>
		
		
Request Example: <TranType>ModifyCreditCard</TranType>
		
		JSON: {
		  "ePNAccount": "080880",
		  "RestrictKey": "yFqqXJh9pqnugfr",
		  "RequestType": "ModifyCreditCard",
		  "TranType": "Cancel",
		  "CardNo": "4111111111111111",
		  "ExpMonth": "12",
		  "ExpYear": "29",
		  "CVV2Type": "1",
		  "CVV2": "123",
		  "RecurID": "369"
		}
		
		
Example Response:
		
		JSON: {
		  "Success": "Y",
		  "RespText": "Successful"
		}
		
		
View Response Value Definitions
Success Indicates the success of the transaction
  1. Y - Successful
  2. N - Declined
RespText The extended details of the "Success" indicator.

Get Recur

Post to: https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/recur.pl

To get recur details for a single recur, post the following:

Field Description
ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
RequestType recur
TranType Get To Get a recur record
RecurID This is the record number established by the ePNRecur System.
Request Example: <TranType>Modify</TranType>
		
		<?xml version="1.0" encoding="utf-8"?>
		<Request>
		  <ePNAccount>080880</ePNAccount>
		  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
		  <RequestType>recur</RequestType>
		  <TranType>Get</TranType>
		  <RecurID>547</RecurID>
		</Request>
		
		
Example Response:
		
		<?xml version="1.0" encoding="utf-8"?>
		<Response>
		  <Success>Y</Success>
		  <RespText>Successful</RespText>
		  <Recur>
		    <XactTime>12:38:55 CDT</XactTime>
		    <RecurID>547</RecurID>
		    <Identifier>ForMyRecords</Identifier>
		    <RCRRecurAmount>12.00</RCRRecurAmount>
		    <RecurAmountOverride></RecurAmountOverride>
		    <PaymentType>Check</PaymentType>
		    <Routing>490000018</Routing>
		    <CheckAcct>123456</CheckAcct>
		    <AccountType>C</AccountType>
		    <AccountClass>Savings</AccountClass>
		    <ProcessingClass>CCDCHECK</ProcessingClass>
		    <Address>123 Street</Address>
		    <Zip>77008</Zip>
		    <FirstName>Joe</FirstName>
		    <LastName>Shmoe</LastName>
		    <City>Houston</City>
		    <State>TX</State>
		    <Phone>7135555555</Phone>
		    <Email>joeshmoe@gmail.com</Email>
		    <Company>Test Company</Company>
		    <Suspend>DATE~09~24~2022</Suspend>
		    <Description>Test Check Recur</Description>
		    <RCRPeriod>Monthly</RCRPeriod>
		    <Status>Active</Status>
		  </Recur>
		</Response>
		
		
Request Example: <TranType>Modify</TranType>
		
		JSON: {
		  "ePNAccount": "080880",
		  "RestrictKey": "yFqqXJh9pqnugfr",
		  "RequestType": "recur",
		  "TranType": "Get",
		  "RecurID": "547"
		}
		
		
Example Response:
		
		JSON: {
		  "Success": "Y",
		  "RespText": "Successful",
		  "Recur":{
		    "XactTime": "12:38:55 CDT",
		    "RecurID": "547",
		    "Identifier": "ForMyRecords",
		    "RCRRecurAmount": "12.00",
		    "RecurAmountOverride": "",
		    "PaymentType": "Check",
		    "Routing": "490000018",
		    "CheckAcct": "123456",
		    "AccountType": "C",
		    "AccountClass": "Savings",
		    "ProcessingClass": "CCDCHECK",
		    "Address": "123 Street",
		    "Zip": "77008",
		    "FirstName": "Joe",
		    "LastName": "Shmoe",
		    "City": "Houston",
		    "State": "TX",
		    "Phone": "7135555555",
		    "Email": "joeshmoe@gmail.com",
		    "Company": "Test Company",
		    "Suspend": "DATE~09~24~2022",
		    "Description": "Test Check Recur",
		    "RCRPeriod": "Monthly",
		    "Status": "Active"
		  }
		}
		
		
View Response Value Definitions
Success Indicates the success of the transaction
  1. Y - Successful
  2. N - Declined
RespText The extended details of the "Success" indicator.
XactTime The time that the recur was set up.
RecurID The recur ID.
Identifier The identifier for the recur.
RCRRecurAmount The amount the recurring transaction runs for.
RecurAmountOverride The override amount the recurring transaction runs for.
PaymentType The the payment type of the recur.
Routing The check routing number. (Only present if payment type is Check)
CheckAcct The check account number. (Only present if payment type is Check)
AccountType The check account type. (Only present if payment type is Check)
  1. C - Company
  2. P - Peronal
AccountClass The check account class. (Only present if payment type is Check)
  1. Checking
  2. Savings
ProcessingClass The check processing class. (Only present if payment type is Check)
  1. WEBCHECK
  2. TELCHECK
  3. PPDCHECK
  4. CCDCHECK
  5. POPCHECK
  6. ARCCHECK
CardMasked The masked card number. (Only present if payment type is Credit)
ExpMonth The month the card expires. (Only present if payment type is Credit)
ExpYear The year the card expires. (Only present if payment type is Credit)
Address The customer's street address.
Zip The customer's zip code.
FirstName The customer's first name.
LastName The year the card expires. (Only present if payment type is Credit)
City The customer's city.
State The customer's state.
Phone The customer's phone number.
Email The customer's email address.
Company The customer's company name.
Suspend The date the recur will be suspended. Example: DATE~09~24~2022
Description The recur description.
RCRPeriod The recur period.
  1. Weekly
  2. BiWeekly
  3. Monthly
  4. 2Months
  5. 3Months
  6. 6Months
  7. 12Months
Status The recur status.

Modify Recurring Amount

Post to: https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/recur.pl

To modify a recurring records amount, post the following:

Field Description
ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
RequestType recur
TranType Modify To Modify the recur record
Amount The new amount you want to set for this recurring record.
RecurID This is the record number established by the ePNRecur System.
Request Example: <TranType>Modify</TranType>
		
		<?xml version="1.0" encoding="utf-8"?>
		<Request>
		  <ePNAccount>080880</ePNAccount>
		  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
		  <RequestType>recur</RequestType>
		  <TranType>Modify</TranType>
		  <Amount>17.17</Amount>
		  <RecurID>369</RecurID>
		</Request>
		
		
Example Response:
		
		<?xml version="1.0" encoding="utf-8"?>
		<Response>
		  <Success>Y</Success>
		  <RespText>Successful</RespText>
		</Response>
		
		
Request Example: <TranType>Modify</TranType>
		
		JSON: {
		  "ePNAccount": "080880",
		  "RestrictKey": "yFqqXJh9pqnugfr",
		  "RequestType": "recur",
		  "TranType": "Modify",
		  "Amount": "17.17",
		  "RecurID": "369"
		}
		
		
Example Response:
		
		JSON: {
		  "Success": "Y",
		  "RespText": "Successful"
		}
		
		
View Response Value Definitions
Success Indicates the success of the transaction
  1. Y - Successful
  2. N - Declined
RespText The extended details of the "Success" indicator.

Status Request

https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/status.pl

If you did not receive a response from the TDBE or you wish to review a previous transaction response, you can post any one of three fields listed below.

Field Description
Inv The invoice you submitted with the transaction.
MerchReqID The merchant request ID you submitted with the transaction
Tran_token The transaction token provided in the response of the transaction. This one is only used for pulling the response again.

If the transaction is found and complete the original response will be re-sent. If not the TDBE will echo the field you used to query and let you know that the transaction was either not found at all, or that it is still processing.

Field Value
Success N
RespText Transaction Not Found

If the transaction is in progress the following values are given:

Field Value
Success Y
RespText Transaction Status Found
StatusMessage Transaction In Progress
Request Example: <MerchReqID>123456ABC</MerchReqID>

<?xml version="1.0" encoding="utf-8"?>
<Request>
  <ePNAccount>080880</ePNAccount>
  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
  <RequestType>status</RequestType>
  <MerchReqID>123456ABC</MerchReqID>
</Request>

Example Response: Not Found

<?xml version="1.0" encoding="utf-8"?>
<Response>
  <MerchReqID>123456ABC</MerchReqID>
  <Success>N</Success>
  <RespText>Transaction Not Found</RespText>
</Response>

Example Response: Processing

<?xml version="1.0" encoding="utf-8"?>
<Response>
  <MerchReqID>123456ABC</MerchReqID>
  <Success>Y</Success>
  <RespText>Transaction Status Found</RespText>
  <StatusMessage>Transaction In Progress</StatusMessage>
</Response>

Request Example: <MerchReqID>123456ABC</MerchReqID>

JSON: {
  "ePNAccount": "080880",
  "RestrictKey": "yFqqXJh9pqnugfr",
  "RequestType": "status",
  "MerchReqID": "123456ABC"
}

Example Response: Not Found

JSON: {
  "MerchReqID": "123456ABC",
  "Success": "N",
  "RespTxt": "Transaction Not Found"
}

Example Response: Processing

JSON: {
  "MerchReqID": "123456ABC",
  "Success": "Y",
  "RespTxt": "Transaction Not Found",
  "StatusMessage": "Transaction In Progress"
}

Settings

https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/settings.pl

You can update account settings for things such as the custom activity reports columns that are used to display up to 3 meta data values assuming the meta data keys match the columns. These are the only account settings that can be changed through the API at this time. You can also obtain check UI requirements so you know which fields are required based on check type and check processor.


Required:
Field Description
ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
RequestType settings
SettingType ReportsMetaColumns or GetCheckUIReqs
ReportsMetaColumn1 An alphanumierc value. White space characters, _, and - are allowed. Leave it empty if you wish to clear the setting. (Only for ReportsMetaColumns SettingType)
ReportsMetaColumn2 An alphanumierc value. White space characters, _, and - are allowed. Leave it empty if you wish to clear the setting. (Only for ReportsMetaColumns SettingType)
ReportsMetaColumn3 An alphanumierc value. White space characters, _, and - are allowed. Leave it empty if you wish to clear the setting. (Only for ReportsMetaColumns SettingType)

When doing a GetCheckUIReqs request, you will receive data for each check type. Each field will have one of the values defined below.

  1. Y - Display, Required
  2. N - Do Not Display
  3. O - Display, Not Required
  4. D - Based on DL Required Flag
  5. I - Based on ID Required Flag
  6. C - Based on Nacha Supported Flag
  7. P - Required for personal only
  8. B - Required for business only

Transaction Reports

https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/reports.pl

You can request transaction information whether it be from the current batch, the activity reports, or both. eProcessing Network will respond either in XML or JSON depending on which content-type you used to post (application/json or text/xml). The following fields are required for reports requests.


Required:
Field Description
ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
RequestType reports
ReportType Batch Activity, All

Current Batch Report

The following list shows each field, along with the possible values that can be passed:


Required:
Field Description
ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
RequestType reports
ReportType Batch
Request Example

<?xml version="1.0" encoding="utf-8"?>
<Request>
  <ePNAccount>080880</ePNAccount>
  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
  <RequestType>report</RequestType>
  <ReportType>Batch</ReportType>
</Request>

Example Response:

<?xml version="1.0" encoding="utf-8"?>
<Response>
  <BatchCount>12</BatchCount>
  <BatchTransactions>
    <Address>123 Street</Address>
    <AVSResponse>AVS Match 9 Digit Zip and Address</AVSResponse>
    <Company>Demo Company</Company>
    <CVV2Response>Card Verification Value Matches</CVV2Response>
    <Date>03/22/2022 02:35:47 PM</Date>
    <Description>Test Transaction</Description>
    <Email>joeshmoe@epn.com</Email>
    <FirstName>Joe</FirstName>
    <Invoice>178628</Invoice>
    <LastName>Shmoe</LastName>
    <InvtOrder>
      <CommCode></CommCode>
      <Cost>5.00</Cost>
      <Desc>Item Desc 1</Desc>
      <Discount>0.00</Discount>
      <ItemID>id1</ItemID>
      <Price>5.04</Price>
      <Qty>1</Qty>
      <Tax>0.04</Tax>
      <UOM></UOM>
    </InvtOrder>
    <InvtOrder>
        ...
    </InvtOrder>
    <MetaData>
      <CustomField1>CustomValue1</CustomField1>
      <CustomField2>CustomValue2</CustomField2>
      <CustomField3>CustomValue3</CustomField3>
    </MetaData>
    <Order>
      <CommCode></CommCode>
      <Cost>5.00</Cost>
      <Desc>Item Desc 2</Desc>
      <Discount>0.00</Discount>
      <Price>5.04</Price>
      <Qty>1</Qty>
      <Tax>0.04</Tax>
      <UOM></UOM>
    </Order>
    <Order>
        ...
    </Order>
    <Payment>VI X1111</Payment>
    <Response>APPROVED 513428</Response>
    <Tax>0.08</Tax>
    <Tip>0.00</Tip>
    <Total>10.08</Total>
    <TranType>Credit Sale</TranType>
    <XactID>20220322143547-080880-178628</XactID>
    <Zip>77008</Zip>
  </BatchTransactions>
  <BatchTransactions>
        ...
  </BatchTransactions>
  <RespText>Transaction(s) found.</RespText>
</Response>


Request Example:
		
		JSON: {
		  "ePNAccount": "080880",
		  "RestrictKey": "yFqqXJh9pqnugfr",
		  "RequestType": "reports",
		  "ReportType": "Batch",
        }
		
		
Example Response:

JSON: {
  "BatchCount": "12",
  "BatchTransactions":[{
       "Address": "123 Street",
       "AVSResponse": "AVS Match 9 Digit Zip and Address",
       "Company": "Demo Company",
       "CVV2Response": "Card Verification Value Matches",
       "Date": "03/22/2022 02:35:47 PM",
       "Description": "Test Transaction",
       "Email": "joeshmoe@epn.com",
       "FirstName": "Joe",
       "Invoice": "178628",
       "LastName": "Shmoe",
       "InvtOrder":[{
            "CommCode": "",
            "Cost": "5.00",
            "Desc": "Item Desc1",
            "Discount": "0.00",
            "ItemID": "id1",
            "Price": "5.04",
            "Qty": "1",
            "Tax": "0.04",
            "UOM": "",
              },
              {
                        ...
              },
         ],
       "MetaData":{
           "CustomField1": "CustomValue1",
           "CustomField2": "CustomValue2",
           "CustomField3": "CustomValue3",
         },
       "Order":[{
            "CommCode": "",
            "Cost": "5.00",
            "Desc": "Item Desc2",
            "Discount": "0.00",
            "Price": "5.04",
            "Qty": "1",
            "Tax": "0.04",
            "UOM": "",
              },
              {
                        ...
              },
         ],
       "Payment": "VI X1111",
       "Response": "APPROVED 513428",
       "Tax": "0.08",
       "Tip": "0.00",
       "Total": "10.08",
       "TranType": "Credit Sale",
       "XactID": "20220322143547-080880-178628",
       "Zip": "77008",
          },
          {
                        ...
          },
    ],
  "RespText": "Transaction(s) found.",
}

View Response Value Definitions
BatchCount The number of transactions in the batch.
Address The customer's street address.
AVSResponse The Address Verification response explanation returned by the card issuing bank.
CVV2Response The CVV2 Verification response explanation returned by the card issuing bank.
CommCode The commodity code for a line item.
Cost The cost of a line item.
Company The company of the customer.
Date The date and time the transaction was processed.
Desc Description of a line item.
Description Description of the transaction. For example, it could be what was ordered.
Discount The discount of a line item.
Email The customer's email address.
FirstName The customer's first name.
InvtOrder The inventory order key for the list of ePNInventory items in the transaction.
ItemID The ID of an ePNInventory item.
LastName The customer's last name.
MetaData The hash of key/value pairs that store additional transaction information.
Order The non-inventory order key for the list of items in the transaction.
Payment The card type and last 4 digits of the card.
Price The total price of a line item with cost, tax, discount, and quantity considered.
Qty The quantity of a line item.
Response The transaction processing response.
Tax The tax of the overall transaction or a line item.
Tax The tip amount for the transaction.
Total The total amount that the transaction was processed for.
TranType The transaction type.
UOM The line item's unit of measure.
XactID A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:
TimeStamp-AccountNumber-InvoiceNumber
20181128124125-080880-123456
XactID's can include a fourth value followed by a dash:
20181128124125-080880-123456-0
  1. 0 - Declined
  2. 6 - Check
  3. 5 - Void
Zip The customer's zip code.
RespText The response indicating whether or not transactions were found.

Activity Report

This report contains all settled credit/debit, cash, check, and giftcard transactions. The following list shows each field, along with the possible values that can be passed:


Required:
Field Description
ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
RequestType reports
ReportType Activity
StartStamp The start date of the for the date range lookup. The StartStamp to EndStamp range can be no more than 3 months. Ex: 20220101 (YYYYMMDD)
EndStamp The end date of the for the date range lookup. The StartStamp to EndStamp range can be no more than 3 months. Ex: 20220104 (YYYYMMDD)
Page The page number of the transaction list to get. If not provided, the value will default to 1.
PageSize The number of transactions to get per page. If not provided, the value will default to 25.
Cache (OPTIONAL) The cache key for faster lookup. A cache key will be returned after you load once.
Reload (OPTIONAL) A flag that forces the cache to reload.
Request Example

<?xml version="1.0" encoding="utf-8"?>
<Request>
  <ePNAccount>080880</ePNAccount>
  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
  <RequestType>report</RequestType>
  <ReportType>Activity</ReportType>
  <StartStamp>20220101</StartStamp>
  <EndStamp>20220104</EndStamp>
</Request>

Example Response:

<?xml version="1.0" encoding="utf-8"?>
<Response>
  <ActivityPageInfo>
    <cache>tdbeapi_70a85e5c549089088f966d2170014364</cache>
    <count>25</count>
    <first>1</first>
    <last>25</last>
    <page>1</page>
    <pages>5</pages>
    <size>25</size>
    <total>105</total>
  </ActivityPageInfo>
  <ActivityTransactions>
    <Address>123 Street</Address>
    <AVSResponse>AVS Match 9 Digit Zip and Address</AVSResponse>
    <Company>Demo Company</Company>
    <CVV2Response>Card Verification Value Matches</CVV2Response>
    <Date>03/22/2022 02:35:47 PM</Date>
    <Description>Test Transaction</Description>
    <Email>joeshmoe@epn.com</Email>
    <FirstName>Joe</FirstName>
    <Invoice>178628</Invoice>
    <LastName>Shmoe</LastName>
    <InvtOrder>
      <CommCode></CommCode>
      <Cost>5.00</Cost>
      <Desc>Item Desc 1</Desc>
      <Discount>0.00</Discount>
      <ItemID>id1</ItemID>
      <Price>5.04</Price>
      <Qty>1</Qty>
      <Tax>0.04</Tax>
      <UOM></UOM>
    </InvtOrder>
    <InvtOrder>
        ...
    </InvtOrder>
    <MetaData>
      <CustomField1>CustomValue1</CustomField1>
      <CustomField2>CustomValue2</CustomField2>
      <CustomField3>CustomValue3</CustomField3>
    </MetaData>
    <Order>
      <CommCode></CommCode>
      <Cost>5.00</Cost>
      <Desc>Item Desc 2</Desc>
      <Discount>0.00</Discount>
      <Price>5.04</Price>
      <Qty>1</Qty>
      <Tax>0.04</Tax>
      <UOM></UOM>
    </Order>
    <Order>
        ...
    </Order>
    <Payment>VI X1111</Payment>
    <Response>APPROVED 513428</Response>
    <Tax>0.08</Tax>
    <Tip>0.00</Tip>
    <Total>10.08</Total>
    <TranType>Credit Sale</TranType>
    <XactID>20220322143547-080880-178628</XactID>
    <Zip>77008</Zip>
  </ActivityTransactions>
  <ActivityTransactions>
        ...
  </ActivityTransactions>
  <RespText>Transaction(s) found.</RespText>
</Response>


Request Example:
		
		JSON: {
		  "ePNAccount": "080880",
		  "RestrictKey": "yFqqXJh9pqnugfr",
		  "RequestType": "reports",
		  "ReportType": "Activity",
		  "StartStamp": "20220101",
		  "EndStamp": "20220104",
        }
		
		
Example Response:

JSON: {
  "ActivityPageInfo":{
       "cache": "tdbeapi_70a85e5c549089088f966d2170014364",
       "count": "25",
       "first": "1",
       "last": "25",
       "page": "1",
       "pages": "5",
       "size": "25",
       "total": "105",
          },
  "ActivityTransactions":[{
       "Address": "123 Street",
       "AVSResponse": "AVS Match 9 Digit Zip and Address",
       "Company": "Demo Company",
       "CVV2Response": "Card Verification Value Matches",
       "Date": "03/22/2022 02:35:47 PM",
       "Description": "Test Transaction",
       "Email": "joeshmoe@epn.com",
       "FirstName": "Joe",
       "Invoice": "178628",
       "LastName": "Shmoe",
       "InvtOrder":[{
            "CommCode": "",
            "Cost": "5.00",
            "Desc": "Item Desc1",
            "Discount": "0.00",
            "ItemID": "id1",
            "Price": "5.04",
            "Qty": "1",
            "Tax": "0.04",
            "UOM": "",
              },
              {
                        ...
              },
         ],
       "MetaData":{
           "CustomField1": "CustomValue1",
           "CustomField2": "CustomValue2",
           "CustomField3": "CustomValue3",
         },
       "Order":[{
            "CommCode": "",
            "Cost": "5.00",
            "Desc": "Item Desc2",
            "Discount": "0.00",
            "Price": "5.04",
            "Qty": "1",
            "Tax": "0.04",
            "UOM": "",
              },
              {
                        ...
              },
         ],
       "Payment": "VI X1111",
       "Response": "APPROVED 513428",
       "Tax": "0.08",
       "Tip": "0.00",
       "Total": "10.08",
       "TranType": "Credit Sale",
       "XactID": "20220322143547-080880-178628",
       "Zip": "77008",
          },
          {
                        ...
          },
    ],
  "RespText": "Transaction(s) found.",
}

View Response Value Definitions
cache The cache key of cached paged transactions. This can be used to load future pages faster.
count The number of transactions loaded for the page.
first The first transaction index for the page.
last The last transaction index for the page.
page The current page number.
pages The total number of pages.
size The maximum number of transactions per page.
total The total number of transactions within the date range.
AVSResponse The Address Verification response explanation returned by the card issuing bank.
Address The customer's street address.
CVV2Response The CVV2 Verification response explanation returned by the card issuing bank.
Company The company of the customer.
Date The date and time the transaction was processed.
Description Description of the transaction. For example, it could be what was ordered.
Email The customer's email address.
FirstName The customer's first name.
InvtOrder The inventory order key for the list of ePNInventory items in the transaction.
ItemID The ID of an ePNInventory item.
LastName The customer's last name.
MetaData The hash of key/value pairs that store additional transaction information.
Order The non-inventory order key for the list of items in the transaction.
Payment The card type and last 4 digits of the card.
Price The total price of a line item with cost, tax, discount, and quantity considered.
Qty The quantity of a line item.
Response The transaction processing response.
Tax The tax of the overall transaction or a line item.
Tax The tip amount for the transaction.
Total The total amount that the transaction was processed for.
TranType The transaction type.
UOM The line item's unit of measure.
XactID A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:
TimeStamp-AccountNumber-InvoiceNumber
20181128124125-080880-123456
XactID's can include a fourth value followed by a dash:
20181128124125-080880-123456-0
  1. 0 - Declined
  2. 6 - Check
  3. 5 - Void
Zip The customer's zip code.
RespText The response indicating whether or not transactions were found.

All Report

This report contains all transactions within the provided date range. The following list shows each field, along with the possible values that can be passed:


Required:
Field Description
ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
RequestType reports
ReportType All
StartStamp The start date of the for the date range lookup. The StartStamp to EndStamp date range can be no more than 3 months. Ex: 20220101 (YYYYMMDD)
EndStamp The end date of the for the date range lookup. The StartStamp to EndStamp date range can be no more than 3 months. Ex: 20220104 (YYYYMMDD)
Page The page number of the transaction list to get. If not provided, the value will default to 1.
PageSize The number of transactions to get per page. If not provided, the value will default to 25.
Cache (OPTIONAL) The cache key for faster lookup. A cache key will be returned after you load once.
Reload (OPTIONAL) A flag that forces the cache to reload.
Request Example

<?xml version="1.0" encoding="utf-8"?>
<Request>
  <ePNAccount>080880</ePNAccount>
  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
  <RequestType>report</RequestType>
  <ReportType>All</ReportType>
  <StartStamp>20220101</StartStamp>
  <EndStamp>20220104</EndStamp>
</Request>

Example Response:

<?xml version="1.0" encoding="utf-8"?>
<Response>
  <ActivityPageInfo>
    <cache>tdbeapi_70a85e5c549089088f966d2170014364</cache>
    <count>25</count>
    <first>1</first>
    <last>25</last>
    <page>1</page>
    <pages>5</pages>
    <size>25</size>
    <total>105</total>
  </ActivityPageInfo>
  <ActivityTransactions>
    <Address>123 Street</Address>
    <AVSResponse>AVS Match 9 Digit Zip and Address</AVSResponse>
    <Company>Demo Company</Company>
    <CVV2Response>Card Verification Value Matches</CVV2Response>
    <Date>03/22/2022 02:35:47 PM</Date>
    <Description>Test Transaction</Description>
    <Email>joeshmoe@epn.com</Email>
    <FirstName>Joe</FirstName>
    <Invoice>178628</Invoice>
    <LastName>Shmoe</LastName>
    <InvtOrder>
      <CommCode></CommCode>
      <Cost>5.00</Cost>
      <Desc>Item Desc 1</Desc>
      <Discount>0.00</Discount>
      <ItemID>id1</ItemID>
      <Price>5.04</Price>
      <Qty>1</Qty>
      <Tax>0.04</Tax>
      <UOM></UOM>
    </InvtOrder>
    <InvtOrder>
        ...
    </InvtOrder>
    <MetaData>
      <CustomField1>CustomValue1</CustomField1>
      <CustomField2>CustomValue2</CustomField2>
      <CustomField3>CustomValue3</CustomField3>
    </MetaData>
    <Order>
      <CommCode></CommCode>
      <Cost>5.00</Cost>
      <Desc>Item Desc 2</Desc>
      <Discount>0.00</Discount>
      <Price>5.04</Price>
      <Qty>1</Qty>
      <Tax>0.04</Tax>
      <UOM></UOM>
    </Order>
    <Order>
        ...
    </Order>
    <Payment>VI X1111</Payment>
    <Response>APPROVED 513428</Response>
    <Tax>0.08</Tax>
    <Tip>0.00</Tip>
    <Total>10.08</Total>
    <TranType>Credit Sale</TranType>
    <XactID>20220322143547-080880-178628</XactID>
    <Zip>77008</Zip>
  </ActivityTransactions>
  <ActivityTransactions>
        ...
  </ActivityTransactions>
  <BatchCount>12</BatchCount>
  <BatchTransactions>
    <Address>123 Street</Address>
    <AVSResponse>AVS Match 9 Digit Zip and Address</AVSResponse>
    <Company>Demo Company</Company>
    <CVV2Response>Card Verification Value Matches</CVV2Response>
    <Date>03/22/2022 02:35:47 PM</Date>
    <Description>Test Transaction</Description>
    <Email>joeshmoe@epn.com</Email>
    <FirstName>Joe</FirstName>
    <Invoice>178628</Invoice>
    <LastName>Shmoe</LastName>
    <InvtOrder>
      <CommCode></CommCode>
      <Cost>5.00</Cost>
      <Desc>Item Desc 1</Desc>
      <Discount>0.00</Discount>
      <ItemID>id1</ItemID>
      <Price>5.04</Price>
      <Qty>1</Qty>
      <Tax>0.04</Tax>
      <UOM></UOM>
    </InvtOrder>
    <InvtOrder>
        ...
    </InvtOrder>
    <MetaData>
      <CustomField1>CustomValue1</CustomField1>
      <CustomField2>CustomValue2</CustomField2>
      <CustomField3>CustomValue3</CustomField3>
    </MetaData>
    <Order>
      <CommCode></CommCode>
      <Cost>5.00</Cost>
      <Desc>Item Desc 2</Desc>
      <Discount>0.00</Discount>
      <Price>5.04</Price>
      <Qty>1</Qty>
      <Tax>0.04</Tax>
      <UOM></UOM>
    </Order>
    <Order>
        ...
    </Order>
    <Payment>VI X1111</Payment>
    <Response>APPROVED 513428</Response>
    <Tax>0.08</Tax>
    <Tip>0.00</Tip>
    <Total>10.08</Total>
    <TranType>Credit Sale</TranType>
    <XactID>20220322143547-080880-178628</XactID>
    <Zip>77008</Zip>
  </BatchTransactions>
  <BatchTransactions>
        ...
  </BatchTransactions>
  <RespText>Transaction(s) found.</RespText>
</Response>


Request Example:
		
		JSON: {
		  "ePNAccount": "080880",
		  "RestrictKey": "yFqqXJh9pqnugfr",
		  "RequestType": "reports",
		  "ReportType": "Activity",
		  "StartStamp": "20220101",
		  "EndStamp": "20220104",
        }
		
		
Example Response:

JSON: {
  "ActivityPageInfo":{
       "cache": "tdbeapi_70a85e5c549089088f966d2170014364",
       "count": "25",
       "first": "1",
       "last": "25",
       "page": "1",
       "pages": "5",
       "size": "25",
       "total": "105",
          },
  "ActivityTransactions":[{
       "Address": "123 Street",
       "AVSResponse": "AVS Match 9 Digit Zip and Address",
       "Company": "Demo Company",
       "CVV2Response": "Card Verification Value Matches",
       "Date": "03/22/2022 02:35:47 PM",
       "Description": "Test Transaction",
       "Email": "joeshmoe@epn.com",
       "FirstName": "Joe",
       "Invoice": "178628",
       "LastName": "Shmoe",
       "InvtOrder":[{
            "CommCode": "",
            "Cost": "5.00",
            "Desc": "Item Desc1",
            "Discount": "0.00",
            "ItemID": "id1",
            "Price": "5.04",
            "Qty": "1",
            "Tax": "0.04",
            "UOM": "",
              },
              {
                        ...
              },
         ],
       "MetaData":{
           "CustomField1": "CustomValue1",
           "CustomField2": "CustomValue2",
           "CustomField3": "CustomValue3",
         },
       "Order":[{
            "CommCode": "",
            "Cost": "5.00",
            "Desc": "Item Desc2",
            "Discount": "0.00",
            "Price": "5.04",
            "Qty": "1",
            "Tax": "0.04",
            "UOM": "",
              },
              {
                        ...
              },
         ],
       "Payment": "VI X1111",
       "Response": "APPROVED 513428",
       "Tax": "0.08",
       "Tip": "0.00",
       "Total": "10.08",
       "TranType": "Credit Sale",
       "XactID": "20220322143547-080880-178628",
       "Zip": "77008",
          },
          {
                        ...
          },
    ],
  "BatchCount": "12",
  "BatchTransactions":[{
       "Address": "123 Street",
       "AVSResponse": "AVS Match 9 Digit Zip and Address",
       "Company": "Demo Company",
       "CVV2Response": "Card Verification Value Matches",
       "Date": "03/22/2022 02:35:47 PM",
       "Description": "Test Transaction",
       "Email": "joeshmoe@epn.com",
       "FirstName": "Joe",
       "Invoice": "178628",
       "LastName": "Shmoe",
       "InvtOrder":[{
            "CommCode": "",
            "Cost": "5.00",
            "Desc": "Item Desc1",
            "Discount": "0.00",
            "ItemID": "id1",
            "Price": "5.04",
            "Qty": "1",
            "Tax": "0.04",
            "UOM": "",
              },
              {
                        ...
              },
         ],
       "MetaData":{
           "CustomField1": "CustomValue1",
           "CustomField2": "CustomValue2",
           "CustomField3": "CustomValue3",
         },
       "Order":[{
            "CommCode": "",
            "Cost": "5.00",
            "Desc": "Item Desc2",
            "Discount": "0.00",
            "Price": "5.04",
            "Qty": "1",
            "Tax": "0.04",
            "UOM": "",
              },
              {
                        ...
              },
         ],
       "Payment": "VI X1111",
       "Response": "APPROVED 513428",
       "Tax": "0.08",
       "Tip": "0.00",
       "Total": "10.08",
       "TranType": "Credit Sale",
       "XactID": "20220322143547-080880-178628",
       "Zip": "77008",
          },
          {
                        ...
          },
    ],
  "RespText": "Transaction(s) found.",
}

View Response Value Definitions
cache The cache key of cached paged transactions. This can be used to load future pages faster.
count The number of transactions loaded for the page.
first The first transaction index for the page.
last The last transaction index for the page.
page The current page number.
pages The total number of pages.
size The maximum number of transactions per page.
total The total number of transactions within the date range.
BatchCount The number of transactions in the batch.
AVSResponse The Address Verification response explanation returned by the card issuing bank.
Address The customer's street address.
CVV2Response The CVV2 Verification response explanation returned by the card issuing bank.
Company The company of the customer.
Date The date and time the transaction was processed.
Description Description of the transaction. For example, it could be what was ordered.
Email The customer's email address.
FirstName The customer's first name.
InvtOrder The inventory order key for the list of ePNInventory items in the transaction.
ItemID The ID of an ePNInventory item.
LastName The customer's last name.
MetaData The hash of key/value pairs that store additional transaction information.
Order The non-inventory order key for the list of items in the transaction.
Payment The card type and last 4 digits of the card.
Price The total price of a line item with cost, tax, discount, and quantity considered.
Qty The quantity of a line item.
Response The transaction processing response.
Tax The tax of the overall transaction or a line item.
Tax The tip amount for the transaction.
Total The total amount that the transaction was processed for.
TranType The transaction type.
UOM The line item's unit of measure.
XactID A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:
TimeStamp-AccountNumber-InvoiceNumber
20181128124125-080880-123456
XactID's can include a fourth value followed by a dash:
20181128124125-080880-123456-0
  1. 0 - Declined
  2. 6 - Check
  3. 5 - Void
Zip The customer's zip code.
RespText The response indicating whether or not transactions were found.

Gift Cards

Our Gift Cards API allows you to sell gift cards and create rewards programs by integrating with one of the supported Gift/Loyalty providers:

  1. *OptiCard
  2. *Global eTelecom
  3. *Secure Payment Systems
  4. FDMS Valulink

* Gift Card transactions from this provider may require a PSPA value depending on how the merchant's program is set up. When the merchant is set up, the merchant receives a PSPA printout that describes which program requires which PSPA value.

Issuance

You can issue a single card or a batch of consecutive cards where the Total is applied to each card.

Field Description
ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
RequestType transaction
TranType GiftCardIssuance
Swiped 1 Value always = 1. Indicates that the card was swiped.
GiftPSPA Club000100000000 This (PSPA) ID is used to identify specific gift/loyalty program and may be required depending on how the merchant's program is set up with one of the following gift card providers:
  • *OptiCard
  • *Global eTelecom
  • *Secure Payment Systems
  • Total The total amount of the transaction including taxes. For example, 100.00. Only include the digits and the decimal point.
    Device BBPOS View
    • IDTECH2
    • IMAGPAY
    • ZCS
    • MP200
    • VEGA3000
    • ChipperBT
    • Chipper2XBT
    • WisePad2
    • WisePad2 Plus
    • WisePad3S
    • MagneSafe
    • MagnePrint
    EncFormat BBPOS View
    • IDTECH2
    • IMAGPAY
    • ZCS
    • MP200
    • BBPOS
    • MagneSafe
    • MagnePrint
    EncData The P2PE KSN data and the P2PE Encrypted data must be concatenated together to become 'EncData' parameter.
    Manually Keyed
    Swiped 0 Value always = 0. Indicates that the card manually keyed.
    CardNo Card number.
    GiftBatchEnd The P2PE KSN data and the P2PE Encrypted data must be concatenated together to become 'EncData' parameter. for the gift card to be issued or the last gift card in the batch.
    Request Example: <TranType>GiftCardIssuance</TranType>
    
    <?xml version="1.0" encoding="utf-8"?>
    <Request>
      <ePNAccount>080880</ePNAccount>
      <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
      <RequestType>transaction</RequestType>
      <TranType>GiftCardIssuance</TranType>
      <Swiped>1</Swiped>
      <GiftPSPA>Club000100000000</GiftPSPA>
      <Total>100.00</Total>
      <Device>ChipperBT</Device>
      <EncFormat>BBPOS</EncFormat>
      <EncData>XXXXXXXXXXX</EncData>
    </Request>
    
    
    Example Response:
    
    <?xml version="1.0" encoding="utf-8"?>
    <Response>
      <XactID>20181128124125-080880-369</XactID>
      <Success>Y</Success>
      <RespText>APPROVED 010956</RespText>
      <AuthCode>010956</AuthCode>
      <Invoice>369</Invoice>
      <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
    </Response>
    
    
    Request Example: <TranType>GiftCardIssuance</TranType>
    
    JSON: {
    "ePNAccount": "080880",
    "RestrictKey": "yFqqXJh9pqnugfr",
    "RequestType": "transaction",
    "TranType": "GiftCardIssuance",
    "Swiped": "1",
    "Total": "100.00",
    "Device": "ChipperBT",
    "EncFormat": "BBPOS",
    "EncData": "XXXXXXXXXXX"
    }
    
    
    Example Response:
    
    JSON: {
    "XactID": "20181128124125-080880-369",
    "Success": "Y",
    "RespText": "APPROVED 010956",
    "AuthCode": "010956",
    "Invoice": "369",
    "Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5"
    }
    
    
    View Response Value Definitions
    XactID A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:
    TimeStamp-AccountNumber-InvoiceNumber
    20181128124125-080880-123456
    XactID's can include a fourth value followed by a dash:
    20181128124125-080880-123456-0
    1. 0 - Declined
    2. 6 - Check
    3. 5 - Void
    Success Indicates the success of the transaction
    1. Y - Approved
    2. N - Declined
    3. U - Unable to perform the transaction.
    RespText The extended details of the "Success" indicator.
    AuthCode The authorization code. This field is only present for credit/debit transactions.
    Tran_token A unique token used for pulling the transaction's Response Values again.
    EmvRespData A string of data returned from the processor for the EMV device.

    Redemption

    A sale against a gift card's value is called redemption. A redemption sale can be one of two TranTypes, depending on the response when the total amount of the transaction is processed. The TranTypes are listed below

    • GiftRedemption - If the total of the sale is equal to or less than the value of the gift card.
    • GiftPartialRedemption - If the total is greater than the amount on the card, the transaction is approved for the amount on the card and you must obtain another form of payment for the remainder of the sale.

    Field Description
    ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
    RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
    RequestType transaction
    TranType GiftRedemption
    Swiped 1
    GiftPSPA Club000100000000 In this example Club0001... is a loyalty program for club members. The (PSPA) ID is used to identify a specific gift/loyalty program and may be required depending on how the merchant's program is set up with one of the following gift card providers:
  • *OptiCard
  • *Global eTelecom
  • *Secure Payment Systems
  • Total The total amount of the transaction including taxes. For example, 100.00. Only include the digits and the decimal point.
    Device BBPOS View
    • IDTECH2
    • IMAGPAY
    • ZCS
    • MP200
    • VEGA3000
    • ChipperBT
    • Chipper2XBT
    • WisePad2
    • WisePad2 Plus
    • WisePad3S
    • MagneSafe
    • MagnePrint
    EncFormat BBPOS View
    • IDTECH2
    • IMAGPAY
    • ZCS
    • MP200
    • BBPOS
    • MagneSafe
    • MagnePrint
    EncData The P2PE KSN data and the P2PE Encrypted data must be concatenated together to become 'EncData' parameter.
    Manually Keyed
    Swiped 0 Value always = 0. Indicates that the card manually keyed.
    CardNo Card number.
    Request Example: <TranType>GiftRedemption</TranType>
    
    <?xml version="1.0" encoding="utf-8"?>
    <Request>
      <ePNAccount>080880</ePNAccount>
      <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
      <RequestType>transaction</RequestType>
      <TranType>GiftRedemption</TranType>
      <Swiped>1</Swiped>
      <Tax>0.83</Tax>
      <Total>100.83</Total>
      <CustCode>1234567</CustCode>
      <Device>ChipperBT</Device>
      <EncFormat>BBPOS</EncFormat>
      <EncData>XXXXXXXXXXX</EncData>
    </Request>
    
    
    Example Response:
    		
    		<?xml version="1.0" encoding="utf-8"?>
    		<Response>
    		  <XactID>20181128124125-080880-369</XactID>
    		  <Success>Y</Success>
    		  <RespText>APPROVED 010956</RespText>
    		  <AuthCode>010956</AuthCode>
    		  <Invoice>369</Invoice>
    		  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
    		</Response>
    		
    		
    Request Example: <TranType>GiftRedemption</TranType>
    				
    				JSON: {
    				"ePNAccount": "080880",
    				"RestrictKey": "yFqqXJh9pqnugfr",
    				"RequestType": "transaction",
    				"TranType": "GiftRedemption",
    				"Swiped": "1",
    				"Tax": "0.83"
    				"Total": "100.83"
    				"CustCode": "1234567",
    				"Device": "ChipperBT",
    				"EncFormat": "BBPOS",
    				"EncData": "XXXXXXXXXXX",
    				"EmvData": "XXXXXXXXXXX"
    				}
    				
    				
    Example Response:
    	
    	JSON: {
    	"XactID": "20181128124125-080880-369",
    	"Success": "Y",
    	"RespText": "APPROVED 010956",
    	"AuthCode": "010956",
    	"Invoice": "369",
    	"Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",
    	"EmvRespData": "AVS Match 9 Digit Zip and Address (X)"
    	}
    	
    	

    View Response Value Definitions
    XactID A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:
    TimeStamp-AccountNumber-InvoiceNumber
    20181128124125-080880-123456
    XactID's can include a fourth value followed by a dash:
    20181128124125-080880-123456-0
    1. 0 - Declined
    2. 6 - Check
    3. 5 - Void
    Success Indicates the success of the transaction
    1. Y - Approved
    2. N - Declined
    3. U - Unable to perform the transaction.
    RespText The extended details of the "Success" indicator.
    AuthCode The authorization code. This field is only present for credit/debit transactions.
    Tran_token A unique token used for pulling the transaction's Response Values again.
    EmvRespData A string of data returned from the processor for the EMV device.

    View Response Value Definitions
    XactID A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:
    TimeStamp-AccountNumber-InvoiceNumber
    20181128124125-080880-123456
    XactID's can include a fourth value followed by a dash:
    20181128124125-080880-123456-0
    1. 0 - Declined
    2. 6 - Check
    3. 5 - Void
    Success Indicates the success of the transaction
    1. Y - Approved
    2. N - Declined
    3. U - Unable to perform the transaction.
    RespText The extended details of the "Success" indicator.
    AuthCode The authorization code. This field is only present for credit/debit transactions.
    Tran_token A unique token used for pulling the transaction's Response Values again.

    Balance Inquiry

    The balance inquiry returns the available balance remaining on the gift card.

    Field Description
    ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
    RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
    RequestType transaction
    TranType GiftBalanceInquiry
    Swiped 1
    GiftPSPA Club000100000000 In this example Club0001... is a loyalty program for club members. The (PSPA) ID is used to identify a specific gift/loyalty program and may be required depending on how the merchant's program is set up with one of the following gift card providers:
  • *OptiCard
  • *Global eTelecom
  • *Secure Payment Systems
  • Total 1.00 Set the total amount of the transaction to 1.00.
    Device BBPOS View
    • IDTECH2
    • IMAGPAY
    • ZCS
    • MP200
    • VEGA3000
    • ChipperBT
    • Chipper2XBT
    • WisePad2
    • WisePad2 Plus
    • WisePad3S
    • MagneSafe
    • MagnePrint
    EncFormat BBPOS View
    • IDTECH2
    • IMAGPAY
    • ZCS
    • MP200
    • BBPOS
    • MagneSafe
    • MagnePrint
    EncData The P2PE KSN data and the P2PE Encrypted data must be concatenated together to become 'EncData' parameter.
    Manually Keyed
    Swiped 0 Value always = 0. Indicates that the card manually keyed.
    CardNo Card number.
    Request Example: <TranType>GiftBalanceInquiry</TranType>
    						
    						<?xml version="1.0" encoding="utf-8"?>
    						<Request>
    						  <ePNAccount>080880</ePNAccount>
    						  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
    						  <RequestType>transaction</RequestType>
    						  <TranType>GiftBalanceInquiry</TranType>
    						  <Swiped>1</Swiped>
    						  <Tax>0.83</Tax>
    						  <Total>100.83</Total>
    						  <CustCode>1234567</CustCode>
    						  <Device>ChipperBT</Device>
    						  <EncFormat>BBPOS</EncFormat>
    						  <EncData>XXXXXXXXXXX</EncData>
    						</Request>
    						
    						
    Example Response:
    						
    						<?xml version="1.0" encoding="utf-8"?>
    						<Response>
    						  <XactID>20181128124125-080880-369</XactID>
    						  <Success>Y</Success>
    						  <RespText>APPROVED 010956</RespText>
    						  <AuthCode>010956</AuthCode>
    						  <Invoice>369</Invoice>
    						  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
    						</Response>
    						
    						
    Request Example: <TranType>GiftBalanceInquiry</TranType>
    					
    					JSON: {
    					"ePNAccount": "080880",
    					"RestrictKey": "yFqqXJh9pqnugfr",
    					"RequestType": "transaction",
    					"TranType": "GiftBalanceInquiry",
    					"Swiped": "1",
    					"Tax": "0.83"
    					"Total": "100.83"
    					"CustCode": "1234567",
    					"Device": "ChipperBT",
    					"EncFormat": "BBPOS",
    					"EncData": "XXXXXXXXXXX",
    					"EmvData": "XXXXXXXXXXX"
    					}
    					
    					
    Example Response:
    					
    					JSON: {
    					"XactID": "20181128124125-080880-369",
    					"Success": "Y",
    					"RespText": "APPROVED 010956",
    					"AuthCode": "010956",
    					"Invoice": "369",
    					"Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",
    					"EmvRespData": "AVS Match 9 Digit Zip and Address (X)"
    					}
    					
    					
    View Response Value Definitions
    XactID A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:
    TimeStamp-AccountNumber-InvoiceNumber
    20181128124125-080880-123456
    XactID's can include a fourth value followed by a dash:
    20181128124125-080880-123456-0
    1. 0 - Declined
    2. 6 - Check
    3. 5 - Void
    Success Indicates the success of the transaction
    1. Y - Approved
    2. N - Declined
    3. U - Unable to perform the transaction.
    RespText The extended details of the "Success" indicator.
    AuthCode The authorization code. This field is only present for credit/debit transactions.
    Tran_token A unique token used for pulling the transaction's Response Values again.

    Add Value

    The balance inquiry returns the available balance remaining on the gift card.

    Field Description
    ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
    RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
    RequestType transaction
    TranType GiftAddValue
    Swiped 1
    GiftPSPA Club000100000000 In this example Club0001... is a loyalty program for club members. The (PSPA) ID is used to identify a specific gift/loyalty program and may be required depending on how the merchant's program is set up with one of the following gift card providers:
  • *OptiCard
  • *Global eTelecom
  • *Secure Payment Systems
  • Total 10.00 Set the total amount they want to add to the card.
    Device BBPOS View
    • IDTECH2
    • IMAGPAY
    • ZCS
    • MP200
    • VEGA3000
    • ChipperBT
    • Chipper2XBT
    • WisePad2
    • WisePad2 Plus
    • WisePad3S
    • MagneSafe
    • MagnePrint
    EncFormat BBPOS View
    • IDTECH2
    • IMAGPAY
    • ZCS
    • MP200
    • BBPOS
    • MagneSafe
    • MagnePrint
    EncData The P2PE KSN data and the P2PE Encrypted data must be concatenated together to become 'EncData' parameter.
    Manually Keyed
    Swiped 0 Value always = 0. Indicates that the card manually keyed.
    CardNo Card number.
    Request Example: <TranType>GiftAddValue</TranType>
    						
    						<?xml version="1.0" encoding="utf-8"?>
    						<Request>
    						  <ePNAccount>080880</ePNAccount>
    						  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
    						  <RequestType>transaction</RequestType>
    						  <TranType>GiftAddValue</TranType>
    						  <Swiped>1</Swiped>
    						  <Total>10,00</Total>
    						  <CustCode>1234567</CustCode>
    						  <Device>ChipperBT</Device>
    						  <EncFormat>BBPOS</EncFormat>
    						  <EncData>XXXXXXXXXXX</EncData>
    						</Request>
    						
    						
    Example Response:
    						
    						<?xml version="1.0" encoding="utf-8"?>
    						<Response>
    						  <XactID>20181128124125-080880-369</XactID>
    						  <Success>Y</Success>
    						  <RespText>APPROVED 010956</RespText>
    						  <AuthCode>010956</AuthCode>
    						  <Invoice>369</Invoice>
    						  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
    						</Response>
    						
    						
    Request Example: <TranType>GiftAddValue</TranType>
    						
    						JSON: {
    						"ePNAccount": "080880",
    						"RestrictKey": "yFqqXJh9pqnugfr",
    						"RequestType": "transaction",
    						"TranType": "GiftAddValue",
    						"Swiped": "1",
    						"Total": "10.00"
    						"CustCode": "1234567",
    						"Device": "ChipperBT",
    						"EncFormat": "BBPOS",
    						"EncData": "XXXXXXXXXXX",
    						"EmvData": "XXXXXXXXXXX"
    						}
    						
    						
    Example Response:
    						
    						JSON: {
    						"XactID": "20181128124125-080880-369",
    						"Success": "Y",
    						"RespText": "APPROVED 010956",
    						"AuthCode": "010956",
    						"Invoice": "369",
    						"Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",
    						"EmvRespData": "AVS Match 9 Digit Zip and Address (X)"
    						}
    						
    						
    View Response Value Definitions
    XactID A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:
    TimeStamp-AccountNumber-InvoiceNumber
    20181128124125-080880-123456
    XactID's can include a fourth value followed by a dash:
    20181128124125-080880-123456-0
    1. 0 - Declined
    2. 6 - Check
    3. 5 - Void
    Success Indicates the success of the transaction
    1. Y - Approved
    2. N - Declined
    3. U - Unable to perform the transaction.
    RespText The extended details of the "Success" indicator.
    AuthCode The authorization code. This field is only present for credit/debit transactions.
    Tran_token A unique token used for pulling the transaction's Response Values again.

    Void Redemption

    A Gift Card Void works like a regular credit card transaction void, it must be done before batch closure.

    Field Description
    ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
    RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
    RequestType transaction
    TranType GiftVoid
    XactID The XactId given for a gift
    GiftPSPA Club000100000000 In this example Club0001... is a loyalty program for club members. The (PSPA) ID is used to identify a specific gift/loyalty program and may be required depending on how the merchant's program is set up with one of the following gift card providers:
  • *OptiCard
  • *Global eTelecom
  • *Secure Payment Systems
  • Total 1.00 When processing a void the total does not matter because the entire transaction will be voided, so you pass the orginal Total or just pass in 1.00.
    Request Example: <TranType>GiftVoid</TranType>
    						
    						<?xml version="1.0" encoding="utf-8"?>
    						<Request>
    						  <ePNAccount>080880</ePNAccount>
    						  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
    						  <RequestType>transaction</RequestType>
    						  <TranType>GiftVoid</TranType>
    						  <XactID>20181128124125-080880-533321</XactID>
    						  <Total>1.00</Total>
    						</Request>
    						
    						
    Example Response:
    						
    						<?xml version="1.0" encoding="utf-8"?>
    						<Response>
    						  <XactID>20181128124125-080880-369-5</XactID>
    						  <Success>Y</Success>
    						  <RespText>APPROVED 010956</RespText>
    						  <AuthCode>010956</AuthCode>
    						  <Invoice>369</Invoice>
    						  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
    						</Response>
    						
    						
    Request Example: <TranType>GiftVoid</TranType>
    					
    					JSON: {
    					"ePNAccount": "080880",
    					"RestrictKey": "yFqqXJh9pqnugfr",
    					"RequestType": "transaction",
    					"XactID": "20181128124125-080880-533321",
    					"TranType": "GiftVoid",
    					"Total": "1.00"
    					}
    					
    					
    Example Response:
    				
    				JSON: {
    				"XactID": "20181128124125-080880-369-5",
    				"Success": "Y",
    				"RespText": "APPROVED 010956",
    				"AuthCode": "010956",
    				"Invoice": "369",
    				"Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5"
    				}
    				
    				
    View Response Value Definitions
    XactID A transaction reference ID for this voided GiftRedemption or GiftPartialRedemption transaction. The XactID is broken up in 3 parts:
    TimeStamp-AccountNumber-InvoiceNumber
    20181128124125-080880-123456
    XactID's can include a fourth value followed by a dash:
    20181128124125-080880-123456-5
    1. 5 - Void
    Success Indicates the success of the transaction
    1. Y - Approved
    2. N - Declined
    3. U - Unable to perform the transaction.
    RespText The extended details of the "Success" indicator.
    AuthCode The authorization code. This field is only present for credit/debit transactions.
    Tran_token A unique token used for pulling the transaction's Response Values again.

    Transfer Balance

    Transfers balance from one Gift Card to another.

    Field Description
    ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
    RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
    RequestType transaction
    TranType GiftTransfer
    Swiped 1 Value always = 1. Indicates that the card was swiped.
    GiftPSPA Club000100000000 This (PSPA) ID is used to identify specific gift/loyalty program and may be required depending on how the merchant's program is set up with one of the following gift card providers:
  • *OptiCard
  • *Global eTelecom
  • *Secure Payment Systems
  • Total The total amount to transfer from one card to the other.
    Device BBPOS View
    • IDTECH2
    • IMAGPAY
    • ZCS
    • MP200
    • VEGA3000
    • ChipperBT
    • Chipper2XBT
    • WisePad2
    • WisePad2 Plus
    • WisePad3S
    • MagneSafe
    • MagnePrint
    EncFormat BBPOS View
    • IDTECH2
    • IMAGPAY
    • ZCS
    • MP200
    • BBPOS
    • MagneSafe
    • MagnePrint
    EncData The P2PE KSN data and the P2PE Encrypted data must be concatenated together to become 'EncData' parameter.
    Must be Manually Keyed
    GiftBatchEnd Card number, or non encrypted gift card data from Track 2 for the gift card to be issued or the last gift card in the batch.
    Request Example: <TranType>GiftTransfer</TranType>
    					
    					<?xml version="1.0" encoding="utf-8"?>
    					<Request>
    					  <ePNAccount>080880</ePNAccount>
    					  <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
    					  <RequestType>transaction</RequestType>
    					  <TranType>GiftTransfer</TranType>
    					  <XactID>20181128124125-080880-533321</XactID>
    					  <Total>1.00</Total>
    					</Request>
    					
    					
    Example Response:
    					
    					<?xml version="1.0" encoding="utf-8"?>
    					<Response>
    					  <XactID>20181128124125-080880-369-5</XactID>
    					  <Success>Y</Success>
    					  <RespText>APPROVED 010956</RespText>
    					  <AuthCode>010956</AuthCode>
    					  <Invoice>369</Invoice>
    					  <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
    					</Response>
    					
    					
    Request Example: <TranType>GiftTransfer</TranType>
    					
    					JSON: {
    					"ePNAccount": "080880",
    					"RestrictKey": "yFqqXJh9pqnugfr",
    					"RequestType": "transaction",
    					"XactID": "20181128124125-080880-533321",
    					"TranType": "GiftTransfer",
    					"Total": "1.00"
    					}
    					
    					
    Example Response:
    				
    				JSON: {
    				"XactID": "20181128124125-080880-369-5",
    				"Success": "Y",
    				"RespText": "APPROVED 010956",
    				"AuthCode": "010956",
    				"Invoice": "369",
    				"Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5"
    				}
    				
    				
    View Response Value Definitions
    XactID A transaction reference ID for this voided GiftRedemption or GiftPartialRedemption transaction. The XactID is broken up in 3 parts:
    TimeStamp-AccountNumber-InvoiceNumber
    20181128124125-080880-123456
    XactID's can include a fourth value followed by a dash:
    20181128124125-080880-123456-5
    1. 5 - Void
    Success Indicates the success of the transaction
    1. Y - Approved
    2. N - Declined
    3. U - Unable to perform the transaction.
    RespText The extended details of the "Success" indicator.
    Tran_token A unique token used for pulling the transaction's Response Values again.

    Common Check System

    eProcessingNetwork has developed a common check system so that merchants can use a single set of fields to process checks, regardless of processor. The following table describes the fields used for the common check system:

    Field Description
    ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
    RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
    RequestType transaction
    TranType sale See Transaction Types for more options.
    PaymentType Check
    Total The total amount of the transaction including taxes. For example, 100.00. Only include the digits and the decimal point.
    FirstName The first name of the check holder.
    LastName The last name of the check holder.
    NCNMicr For scanned checks, the MICR value read from the check reader. Not used for keyed checks.
    NCNRoutingNum For keyed checks, the routing number of the check. Not used for scanned checks. For testing, use the demo routing number 490000018.
    NCNCheckNum For keyed checks, the check number. This is optional for most NACHA types; it is required for TEL and may be required depending on the merchant's account setup. Not used for scanned checks.
    NCNAccountNum For keyed checks, the checking account number. Not used for scanned checks.
    NCNAccountType The account type. Values are:
    • BUSINESS CHECKING
    • BUSINESS SAVINGS
    • PERSONAL CHECKING
    • PERSONAL SAVINGS
    For merchants on Echo, you can also use:
    • PERSONAL LOAN
    • BUSINESS LOAN
    NCNDLState The 2-charcter state code for the driver's license state. If you are not providing a driver's license, submit XX.
    NCNDLNum The driver's license number in the following format EttyymmddDLnnnnn Where:
    • E - Must be used as the identifier for this string.
    • tt - Country (should be US)
    • yy - 2-digit expiration year (leading zero)
    • mm - 2-digit expiration month (leading zero)
    • dd - 2-digit expiration day of month (leading zero)
    • DL - Letters "DL" for driver's license
    • nnnnn - Driver's license number.
    NCNTran The type of NACHA transaction. The default value is WEBCHECK. The merchant account must be configured correctly for the NACHA code. Values are:
    • WEBCHECK
    • WEBVOID
    • TELCHECK
    • TELVOID
    • PPDCHECK
    • PPDVOID
    • CCDCHECK
    • CCDVOID
    • POPCHECK
    • POPVOID
    • ARCCHECK
    • ARCVOID
    For merchants on Paya, you can also use:
    • Check21CHECK
    • Check21VOID
    • BOCCHECK
    • BOCVOID
    For merchants on Echo, you can also use:
    • WEBRETURN
    • TELRETURN
    • PPDRETURN
    • CCDRETURN
    • POPRETURN
    • ARCRETURN
    NCNOverride Optional. Forces a specific processing type, overriding the normal determination logic. Values are:
    • convert
    • verify
    For merchants on Echo, you can also use "achonly" where the check is not verified but will be submitted for ACH processing.
    IdentifyDOBYear/IdentifySSN4 For merchants on Paya only. If your merchant account requires identification, submit one of these two fields:
    • IdentifySSN4 - Last 4 digits of the Social Security Number.
    • IdentifyDOBYear - Account holder's birth year (YYYY).
    Request Example: <PaymentType>Check</PaymentType>
    
    <?xml version="1.0" encoding="utf-8"?>
    <Request>
      <ePNAccount>080880</ePNAccount>
      <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
      <RequestType>transaction</RequestType>
      <TranType>Sale</TranType>
      <PaymentType>Check</PaymentType>
      <Total>100.00</Total>
      <FirstName>Joe</FirstName>
      <LastName>Shmoe</LastName>
      <NCNRoutingNum>490000018</NCNRoutingNum>
      <NCNAccountNum>123456</NCNAccountNum>
      <NCNAccountType>PERSONAL CHECKING</NCNAccountType>
      <NCNDLState>TX</NCNDLState>
      <NCNDLNum>EUS221227DL12345678</NCNDLNum>
      <NCNTran>POPCHECK</NCNTran>
      <NCNOverride>convert</NCNOverride>
      <IdentityDOBYear>1991</IdentityDOBYear>
    </Request>
    
    
    Example Response:
    
    <?xml version="1.0" encoding="utf-8"?>
    <Response>
      <XactID>20181128124125-080880-123456-6</XactID>
      <Success>Y</Success>
      <RespText>Approved</RespText>
      <Invoice>123456</Invoice>
      <Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
    </Response>
    
    
    Request Example: <NCNAccountType>103</NCNAccountType>
    
    JSON: {
      "ePNAccount": "080880",
      "RestrictKey": "yFqqXJh9pqnugfr",
      "RequestType": "transaction",
      "TranType": "Sale",
      "PaymentType": "Check",
      "Total": "100.00",
      "FirstName": "Joe",
      "LastName": "Shmoe",
      "NCNRoutingNum": "490000018",
      "NCNCheckNum": "1234",
      "NCNAccountNum": "123456",
      "NCNDLState": "TX",
      "NCNDLNum": "EUS221227DL12345678",
      "NCNTran": "POPCHECK",
      "NCNOverride": "convert",
      "IdentityDOBYear": "1991"
    }
    
    
    Example Response:
    
    JSON: {
      "XactID": "20181128124125-080880-123456-6",
      "Success": "Y",
      "RespText": "Approved",
      "AuthCode": "010956",
      "Invoice": "123456",
      "Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5"
    }
    
    
    View Response Value Definitions
    XactID A transaction reference ID that can be used for additional transactions types, such as Voids and Returns or stored as a token for CardNo for future sales. The XactID is broken up in 3 parts:
    TimeStamp-AccountNumber-InvoiceNumber
    20181128124125-080880-123456
    XactID's can include a fourth value followed by a dash:
    20181128124125-080880-123456-0
    1. 0 - Declined
    2. 6 - Check
    3. 5 - Void
    Success Indicates the success of the transaction
    1. Y - Approved
    2. N - Declined
    3. U - Unable to perform the transaction.
    RespText The extended details of the "Success" indicator.
    AuthCode The authorization code. This field is only present for credit/debit transactions.
    Invoice The invoice number that is assigned this transaction. Max of 8 characters.
    Tran_token A unique token used for pulling the transaction's Response Values again.

    Check Image Uploads
    You must upload check images in the TIFF format.

    For any check transaction, you have the option of submitting check images. For Check21 transactions, both front and back images of the check are required and must be submitted to the processor. For all other transactions, check images are optional; however, we recommend that you submit them as they are available to you for reporting.

    For any of the check transactions that you submit that are MICR based (POP, ARC, BOC and Check21), you can include an image of the check for submission to the processor and for later display in reporting.

    You can upload check images in one of two ways: as a normal file input HTML element <input type="file"> or as a field with the entire binary contents of the file as Base 64 encoded text.

    To send the check images as file fields, use these fields:

    Field Description
    Check21ImageFile1 Always = .tiff Front of check image. Use this as the name for the HTML file input field.
    Check21ImageFile2 Always = .tiff Back of check image. Use this as the name for the HTML file input field.

    Send the check images as file fields, use these fields:

    Field Value
    Check21ImageBytes1 Front Check Image. Base 64 encoded text representation of the binary contents of the image file.
    Check21ImageType1 tiff Always = tiff ,image type for the front of check image.
    Check21ImageBytes2 Back Check Image. Base 64 encoded text representation of the binary contents of the image file.
    Check21ImageType2 tiff Always = tiff ,image type for the back of check image.

    Customer Data Manager / CDM

    https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/cdm.pl

    You can integrate your website or software with our gateway's ability to collect customer information and perform operations on those customer records as needed via our TDBE/API. You may List, Find, Add, Delete and Modify customer records and eProcessing Network will respond either in XML or JSON depending on which content-type you used to post (application/json or text/xml). For backwards compatibility with the old TDBE API, you can still pass in a form and it will return JSON by default. If you provide the field RespondAs with the value of XML, it will return XML.

    You MUST have the ePN account enabled for "CDM Advanced" - which you can check with our technical support department at 800-971-0997.
    Required:
    Field Description
    ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
    RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
    RequestType cdm
    Action AddCustomer List, Find, Add, Delete, Modify (May include a filter; i.e. ListCustomer, DeletePayment, AddCustomer, DeleteCustomer, FindAddress)

    Customer Data

    https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/cdm.pl

    The following list shows each field, along with the possible values that can be passed:

    Field Description
    ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
    RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
    RequestType cdm
    Action AddCustomer List, Find, Add, Delete, Modify (May include a filter; i.e. ListCustomer, DeletePayment, AddCustomer, DeleteCustomer, FindAddress)
    Name Yvonne Foster
    Phone 123-456-7890
    Email yfoster@email.com
    Identifier This is intended to be the merchant's identifier for the customer, useful for cross reference between their system and CDM.
    Description Internet Description for the customer, useful for cross reference between their system and CDM.
    from mysite.com order A field that is from your integration that will passed back to your but not stored with eProccessingNetwork.
    Request Example: <Action>AddCustomer</Action>
    
    <?xml version="1.0" encoding="utf-8"?>
    <Request>
      <ePNAccount>080880</ePNAccount>
      <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
      <RequestType>cdm</RequestType>
      <Action>AddCustomer</Action>
      <Name>Yvonne Foster</Name>
      <Phone>123-456-7890</Phone>
      <Email>yfoster@email.com</Email>
      <Identifier>Site1Customer001</Identifier>
      <Description>Internet</Description>
      <From>mysite.com order</From>
    </Request>
    
    
    Example Response:
    
    <?xml version="1.0" encoding="utf-8"?>
    <CDM>
      <action">List</action">
      <status">1</status">
      <resultCount">1</resultCount">
      <pageCount">1</pageCount">
      <currentPage">1</currentPage">
      <from>mysite.com order</from>v
      <result>
         <record>>
            <RecordID>1</RecordID>
            <RecordType>Customer</RecordType>
            <Identifier>Site1Customer001</Identifier>
            <Name>Yvonne Foster</Name>
            <Phone>123-456-7890</Phone>
            <Email>yfoster@email.com</Email>
            <Description>Internet</Description>
            <DefaultPayment>none</DefaultPayment>
         </record>>
      </result>
    </CDM>
    
    
    
    Request Example: <Action>AddCustomer</Action>
    
    JSON: {
      "ePNAccount": "080880",
      "RestrictKey": "yFqqXJh9pqnugfr",
      "RequestType": "cdm",
      "Action": "AddCustomer",
      "Name": "Yvonne Foster",
      "Phone": "123-456-7890",
      "Email": "yfoster@email.com",
      "Identifier": "FInternet001",
      "Description": "Internet",
      "From": "mysite.com order"
    }
    
    
    Example Response:
    
    JSON: {
      "action": "List",
      "resultCount": "1",
      "pageCount": "1",
      "currentPage": "1",
      "from": "mysite.com order",
      "result": [
          {
            "RecordID": "1",
            "RecordType": "Customer",
            "Name": "Yvonne Foster",
            "Phone": "123-456-7890",
            "Email": "yfoster@email.com",
            "Description": "Internet",
            "DefaultPayment": "None"
          }
         ]
    
    }
    
    
    View Response Value Definitions
    action

    The action of the response.

    status Indicates that records found:
    1. 0 - False
    2. 1 - True
    pageCount

    How many pages of records found, defaults to 20

    resultCount

    Home many records found

    currentPage

    Page number of data provided

    from

    Your data passed back to you.

    result The results of your Action.

    Address

    The following list shows each field, along with the possible values that can be passed:

    Field Description
    CustomerID Parent Customer ID
    Action AddAddress
    RecordType
    1. B - Billing
    2. S - Shipping
    3. O - Other
    Name Shipping Name of the Address Record.
    FirstName Yvonne
    LastName Foster
    Company Foster Inc
    Address1 123 Main
    Address2 #101
    City Houston
    State TX
    Zip 77008
    Country USA
    Phone 123-345-6789
    Fax 123-445-6789
    Email yfoster@email.com
    Request Example: <Action>AddAddress</Action>
    
    <?xml version="1.0" encoding="utf-8"?>
    <Request>
      <ePNAccount>080880</ePNAccount>
      <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
      <RequestType>cdm</RequestType>
      <CustomerID>1</Total>
      <Action>AddAddress</Action>
      <RecordType>S</RecordType>
      <Name>Shipping</Name>
      <FirstName>Yvonne</FirstName>
      <LastName>Foster</LastName>
      <Company>Supplies Unlimited</Company>
      <Address1>123 Main Street</Address1>
      <Address2>#101</Address2>
      <City>Houston</City>
      <State>TX</State>
      <Zip>77008</Zip>
      <Country>USA</Country>
      <Phone>123-456-7890</Phone>
      <Fax>123-445-6789</Fax>
      <Email>yfoster@email.com</Email>
      <From>ShipTo001</From>
    </Request>
    
    
    Example Response:
    
    <?xml version="1.0" encoding="utf-8"?>
    <CDM>
      <action">List</action">
      <status">1</status">
      <resultCount">1</resultCount">
      <currentPage">1</currentPage">
      <from>ShipTo001</from>
      <result>
         <record>>
            <RecordID>1</RecordID>
            <RecordType>Customer</RecordType>
            <FirstName>Yvonne</FirstName>
            <LastName>Foster</LastName>
            <Company>Supplies Unlimited</Company>
            <Address1>123 Main Street</Address1>
            <Address2>#101</Address2>
            <City>Houston</City>
            <State>TX</State>
            <Zip>77008</Zip>
            <Country>USA</Country>
            <Phone>123-456-7890</Phone>
            <Fax>123-445-6789</Fax>
            <Email>yfoster@email.com</Email>
            <DefaultPayment>none</DefaultPayment>
          </record>>
      </result>
      <resultCount>1</resultCount>
    </CDM>
    
    
    Request Example: <Action>AddAddress</Action>
    
    JSON: {
      "ePNAccount": "080880",
      "RestrictKey": "yFqqXJh9pqnugfr",
      "RequestType": "cdm",
      "CustomerID": "1",
      "Action": "AddAddress",
      "RecordType": "S",
      "FirstName": "Yvonne",
      "LastName": "Foster",
      "Company": "Supplies Unlimited",
      "Address1": "123 Main Street",
      "Address2": "#101",
      "City": "Houston",
      "State": "TX",
      "Zip": "77006",
      "Country": "USA",
      "Phone": "123-456-7890",
      "Fax": "123-445-6789",
      "Email": "yfoster@email.com",
      "From": "ShipTo001"
    }
    
    
    Example Response:
    
    JSON: {
      "action": "List",
      "resultCount": "1",
      "currentPage": "1",
      "from": "ShipTo001",
      "result": [
          {
            "RecordID": "1",
            "FirstName": "Yvonne",
            "LastName": "Foster",
            "Company": "Supplies Unlimited",
            "Address1": "123 Main Street",
            "Address2": "101",
            "City": "Houston",
            "State": "TX",
            "Zip": "77006",
            "Country": "USA",
            "Phone": "123-456-7890",
            "Fax": "123-445-6789",
            "Email": "yfoster@email.com"
          }
         ]
    
    }
    
    
    View Response Value Definitions
    action

    The action of the response.

    status Indicates that records found:
    1. 0 - False
    2. 1 - True
    pageCount

    How many pages of records found, defaults to 20

    resultCount

    Home many records found

    currentPage

    Page number of data provided

    from

    Your data passed back to you.

    result The results of your Action.

    Add Payment

    The following list shows each field, along with the possible values that can be passed:

    Field Description
    CustomerID Parent Customer ID
    RecordType
    1. C Credit Card
    2. A ACH
    Action AddPayment List, Find, Add, Delete, Modify (May include a filter; i.e. ListCustomer, DeletePayment, AddCustomer, DeleteCustomer, FindAddress)

    The following list shows each field for the Credit Card record type, along with the possible values that can be passed:

    Field Description
    CardNumber Card number to be stored.
    CardType Card Type (Visa, MasterCard, Amex, etcetera.)
    ExpireMonth Card Expiration Month (MM)
    ExpireYear Card Expiration Year (YY)
    CVV2 The CVV2 value on the card. If you submit 0 for CVV2Type, then submit this field as empty.

    The following list shows each field for the ACH record type, along with the possible values that can be passed:

    Field Description
    NCNAccountType The account type. Values are:
    • BUSINESS CHECKING
    • BUSINESS SAVINGS
    • PERSONAL CHECKING
    • PERSONAL SAVINGS
    NCNRoutingNum The routing number of the account.
    NCNAccountNum The checking or savings account number.
    Request Example: <Action>AddPayment</Action>
    
    <?xml version="1.0" encoding="utf-8"?>
    <Request>
      <ePNAccount>080880</ePNAccount>
      <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
      <RequestType>cdm</RequestType>
      <CustomerID>1</Total>
      <RecordID>1</RecordID>
      <Action>AddPayment</Action>
      <RecordType>C</RecordType>
      <CardType>Visa</CardType>
      <CardNo>4111111111111111</CardNo>
      <ExpMonth>12</ExpMonth>
      <ExpYear>28</ExpYear>
      <CVV2Type>1</CVV2Type>
      <CVV2>123</CVV2>
      <From>CardOnFile002</From>
    </Request>
    
    
    Example Response:
    
    <?xml version="1.0" encoding="utf-8"?>
    <CDM>
      <action">List</action">
      <status">1</status">
      <resultCount">1</resultCount">
      <currentPage">1</currentPage">
      <from>CardOnFile002</from>
      <result>
         <record>>
            <RecordID>1</RecordID>
            <RecordType>Customer</RecordType>
            <FirstName>Yvonne</FirstName>
            <LastName>Foster</LastName>
            <Company>Supplies Unlimited</Company>
            <Address1>123 Main Street</Address1>
            <Address2>#101</Address2>
            <City>Houston</City>
            <State>TX</State>
            <Zip>77008</Zip>
            <Country>USA</Country>
            <Phone>123-456-7890</Phone>
            <Fax>123-445-6789</Fax>
            <Email>yfoster@email.com</Email>
            <DefaultPayment>none</DefaultPayment>
          </record>>
      </result>
      <resultCount>1</resultCount>
    </CDM>
    
    
    Request Example: <Action>AddAddress</Action>
    
    JSON: {
      "ePNAccount": "080880",
      "RestrictKey": "yFqqXJh9pqnugfr",
      "RequestType": "cdm",
      "CustomerID": "1",
      "Action": "AddAddress",
      "RecordType": "S",
      "FirstName": "Yvonne",
      "LastName": "Foster",
      "Company": "Supplies Unlimited",
      "Address1": "123 Main Street",
      "Address2": "#101",
      "City": "Houston",
      "State": "TX",
      "Zip": "77006",
      "Country": "USA",
      "Phone": "123-456-7890",
      "Fax": "123-445-6789",
      "Email": "yfoster@email.com",
      "From": "ShipTo001"
    }
    
    
    Example Response:
    
    JSON: {
      "action": "List",
      "resultCount": "1",
      "currentPage": "1",
      "from": "ShipTo001",
      "result": [
          {
            "RecordID": "1",
            "FirstName": "Yvonne",
            "LastName": "Foster",
            "Company": "Supplies Unlimited",
            "Address1": "123 Main Street",
            "Address2": "101",
            "City": "Houston",
            "State": "TX",
            "Zip": "77006",
            "Country": "USA",
            "Phone": "123-456-7890",
            "Fax": "123-445-6789",
            "Email": "yfoster@email.com"
          }
         ]
    
    }
    
    
    View Response Value Definitions
    action

    The action of the response.

    status Indicates that records found:
    1. 0 - False
    2. 1 - True
    pageCount

    How many pages of records found, defaults to 20

    resultCount

    Home many records found

    currentPage

    Page number of data provided

    from

    Your data passed back to you.

    result The results of your Action.

    Query Parameters

    The following list shows each field, along with the possible values that can be passed:

    Field Description
    Action List, Find, Add, Delete, Modify (May include a filter; i.e. ListCustomer, DeletePayment, AddCustomer, DeleteCustomer, FindAddress)
    ListDefaults Address, Payment, or All (Only affects 'Find' and 'List' for Customer, ListDefaults overrides List Children. Payment listings always include the BillingAddress associated with it)
    ListChildren Address, Payment, or All
    Find What to search for. This could be first name, last name, email, address, etcetera.
    Limit Numeric limit of results from find
    Page Current page to return when paginated
    PageSize Pagination size, defaults to 20
    CustomerID The customer record ID
    PaymentID The payment record ID.
    RecordID Billing Address Record ID
    From Value you may specify that will be returned with the response, has no effect on transaction.
    Request Example:
    
    <?xml version="1.0" encoding="utf-8"?>
    <Request>
      <ePNAccount>080880</ePNAccount>
      <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
      <RequestType>cdm</RequestType>
      <Action>FindCustomer</Action>
      <Find>Joe Shmoe</Find>
    </Request>
    
    
    Request Example:
    		
    		JSON: {
    		  "ePNAccount": "080880",
    		  "RestrictKey": "yFqqXJh9pqnugfr",
    		  "RequestType": "cdm",
    		  "Action": "FindCustomer",
    		  "Find": "Joe Shmoe"
    		}
    		
    		

    BillPay

    https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/billpay.pl

    You can integrate your website or software with our gateway's ability to create invoices and manage those invoices as needed via our TDBE/API. You may Create, Modify, Send, and Get invoices and eProcessing Network will respond either in XML or JSON depending on which content-type you used to post (application/json or text/xml). For backwards compatibility with the old TDBE API, you can still pass in a form.

    You MUST have the ePN account enabled for "ePNBillpay" - which you can check with our technical support department at 800-971-0997.
    Required:
    Field Description
    ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
    RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
    RequestType billpay
    Action Create Create, Modify, Send, Status

    Create Invoice

    The following list shows each field, along with the possible values that can be passed:

    Required:
    Field Description
    ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
    RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
    RequestType billpay
    Action Create
    Total The total amount of the invoice including tax and shipping. For example, 100.00. Only include the digits and the decimal point.
    Bill_FirstName The first name of the customer's billing information.
    Bill_LastName The last name of the customer's billing information.
    Bill_Company The billing company. This can be used in place of first name and last name.
    Email The customer's email which is used for sending the invoice. This field is only required if you plan to send the invoice.
    Invoice The invoice number for this invoice. This cannot be the same number as any previous invoice.

    Optional:
    Field Description
    Tax The tax amount of the transaction. Only include the digits and the decimal point. If the tax value is not required, submit 0.00.
    Shipping Total amount charged for Shipping.
    Tip The tip amount. Only include the digits and the decimal point.
    Convenience The convenience fee amount. Regulations state this should not be more than 4% of the transaction total. Make sure to calculate it and send the calculated amount under this parameter. Only include the digits and the decimal point.
    InvoiceDate The invoice date as UTC. If this is not passed, today's date is used. Format is yyyyMMdd. Ex: 20200622
    BalanceDue The balance due. Only include the digits and the decimal point.
    Customer The customer's first and last name.
    Account The customer's account.
    Fax The customer's fax number.
    PurchaseOrder The customer's purchase order number.
    CustAcctNum The customer's account number.
    ShipVia The shipping method.
    DueDate The payment due date as UTC. Format is yyyyMMdd. Ex: 20200622
    Bill_Address1 The billing address. Ex. 123 Main St.
    Bill_Address2 The billing address. Ex. Suite 1445
    Bill_City The billing city.
    Bill_State The billing state.
    Bill_Zip The billing zip code.
    Bill_Phone The billing phone number.
    Bill_Country The billing country.
    Ship_Company The shipping company.
    Ship_FirstName The shipping first name.
    Ship_LastName The shipping last name.
    Ship_Address1 The shipping address. Ex. 123 Main St.
    Ship_Address2 The shipping address. Ex. Suite 1445
    Ship_City The shipping city.
    Ship_State The shipping state.
    Ship_Zip The shipping zip code.
    Ship_Phone The shipping phone number.
    Ship_Country The shipping country.
    Ship_Country_Code The shipping country code.
    Tax_Code The tax code.
    As_PCLevel3 Flag that makes the invoice payment process as Level 3.
    Item The item name. See examples on how to include items.
    ID The non-inventory item ID. See examples on how to include items.
    InvtID The inventory item ID if it is from ePNInventory. See examples on how to include items.
    Qty The quantity of the item being sold. See examples on how to include items.
    Cost The cost of the item being sold. See examples on how to include items.
    Desc The item description. See examples on how to include items.
    Code The item commodity code. See examples on how to include items.
    Disc The item discount. See examples on how to include items.
    UOM The item unit of measure. See examples on how to include items.
    Request Example
    
    <?xml version="1.0" encoding="utf-8"?>
    <Request>
      <ePNAccount>080880</ePNAccount>
      <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
      <RequestType>billpay</RequestType>
      <Action>Create</Action>
      <Total>12.00</Total>
      <Bill_FirstName>Joe</Bill_FirstName>
      <Bill_LastName>Shmoe</Bill_LastName>
      <Email>joeshmoe@epn.com</Email>
      <Shipping>2.00</Shipping>
      <Tax>1.00</Tax>
      <DueDate>20210608</DueDate>
      <ShipVia>UPS</ShipVia>
      <Bill_Address1>123 Main Street</Bill_Address1>
      <Bill_City>Houston</Bill_City>
      <Bill_State>TX</Bill_State>
      <Bill_Zip>77558</Bill_Zip>
      <Ship_FirstName>Joe</Ship_FirstName>
      <Ship_LastName>Shmoe</Ship_LastName>
      <Ship_Address1>123 Main Street</Ship_Address1>
      <Ship_City>Houston</Ship_City>
      <Ship_State>TX</Ship_State>
      <Ship_Zip>77558</Ship_Zip>
      <Items>
        <Item>
          <Item>abc123</Item>
          <ID>ggg44f32d</ID>
          <Cost>4.00</Cost>
          <Desc>blue hat</Desc>
          <Qty>2</Qty>
        </Item>
        <Item>
          <Item>ddd333</Item>
          <ID>ggg44554d</ID>
          <Cost>1.00</Cost>
          <Desc>red hat</Desc>
          <Qty>1</Qty>
        </Item>
      </Items>
    </Request>
    
    
    Example Response:
    
    <?xml version="1.0" encoding="utf-8"?>
    <Response>
      <BalanceDue>12</BalanceDue>
      <Details>
        <Bill_Address1>123 Main Street</Bill_Address1>
        <Bill_City>Houston</Bill_City>
        <Bill_FirstName>Joe</Bill_FirstName>
        <Bill_LastName>Shmoe</Bill_LastName>
        <Bill_State>TX</Bill_State>
        <Bill_Zip>77558</Bill_Zip>
        <DueDate>20210608</DueDate>
        <Email>joeshmoe@epn.com</Email>
        <ShipVia>UPS</ShipVia>
        <Ship_Address1>123 Main Street</Ship_Address1>
        <Ship_City>Houston</Ship_City>
        <Ship_FirstName>Joe</Ship_FirstName>
        <Ship_LastName>Shmoe</Ship_LastName>
        <Ship_State>TX</Ship_State>
        <Ship_Zip>77558</Ship_Zip>
      </Details>
      <Invoice>987654386</Invoice>
      <InvoiceDate>20200610</InvoiceDate>
      <PaymentURL>https://www.eprocessingnetwork.com/cgi-bin/wo/billpay.pl?a=080880&t=2006-8e68o2ey</PaymentURL>
      <RespText>Invoice Created Successfully</RespText>
      <Shipping>2.00</Shipping>
      <Status>Open</Status>
      <Tax>1.00</Tax>
      <Total>12</Total>
    </Response>
    
    
    
    Request Example:
    		
    		JSON: {
    		  "ePNAccount": "080880",
    		  "RestrictKey": "yFqqXJh9pqnugfr",
    		  "RequestType": "billpay",
    		  "Action": "Create",
    		  "Total": "12.00",
    		  "Bill_FirstName": "Joe",
    		  "Bill_LastName": "Shmoe",
    		  "Email": "joeshmoe@epn.com",
    		  "Shipping": "2.00",
    		  "Tax": "1.00",
    		  "DueDate": "20210608",
    		  "ShipVia": "UPS",
    		  "Bill_Address1": "123 Main Street",
    		  "Bill_City": "Houston",
    		  "Bill_State": "TX",
    		  "Bill_Zip": "77558",
    		  "Ship_FirstName": "Joe",
    		  "Ship_LastName": "Shmoe",
    		  "Ship_Address1": "123 Main Street",
    		  "Ship_City": "Houston",
    		  "Ship_State": "TX",
    		  "Ship_Zip": "77558",
    		  "Items": [{
                   "Item": "abc123",
                   "ID": "ggg44f32d",
                   "Cost": "4.00",
                   "Desc": "blue hat",
                   "Qty": "2"
                },
    		            {
                   "Item": "ddd333",
                   "ID": "ggg44554d",
                   "Cost": "1.00",
                   "Desc": "red hat",
                   "Qty": "1"
                }]
            }
    		
    		
    Example Response:
    
    JSON: {
      "BalanceDue": "12.00",
      "Details":{
           "Bill_Address1": "123 Main Street",
           "Bill_City": "Houston",
           "Bill_FirstName": "Joe",
           "Bill_LastName": "Shmoe",
           "Bill_State": "TX",
           "Bill_Zip": "77558",
           "DueDate": "20210608",
           "Email": "joeshmoe@epn.com",
           "ShipVia": "UPS",
           "Ship_Address1": "123 Main Street",
           "Ship_City": "Houston",
           "Ship_FirstName": "Joe",
           "Ship_LastName": "Shmoe",
           "Ship_State": "TX",
           "Ship_Zip": "77558"
              },
      "Invoice": "987654386",
      "InvoiceDate": "20200610",
      "PaymentURL": "https://www.eprocessingnetwork.com/cgi-bin/wo/billpay.pl?a=080880&t=2006-8e68o2ey",
      "RespText": "Invoice Created Successfully",
      "Shipping": "2.00",
      "Status": "Open",
      "Tax": "1.00",
      "Total": "12.00"
    }
    
    

    Modify Invoice

    The following list shows each field, along with the possible values that can be passed:

    Required:
    Field Description
    ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
    RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
    RequestType billpay
    Action Modify
    Invoice The invoice number of the invoice to modify.

    Optional:
    Field Description
    Total The total amount of the invoice including tax and shipping. For example, 100.00. Only include the digits and the decimal point.
    Bill_FirstName The first name of the customer's billing information.
    Bill_LastName The last name of the customer's billing information.
    Email The customer's email which is used for sending the invoice. This field is only required if you plan to send the invoice.
    Tax The tax amount of the transaction. Only include the digits and the decimal point. If the tax value is not required, submit 0.00.
    Shipping Total amount charged for Shipping.
    Tip The tip amount. Only include the digits and the decimal point. (COMING SOON)
    Convenience The convenience fee amount. Only include the digits and the decimal point. (COMING SOON)
    InvoiceDate The invoice date as UTC. If this is not passed, today's date is used. Format is yyyyMMdd. Ex: 20200622
    BalanceDue The balance due. Only include the digits and the decimal point.
    Customer The customer's first and last name.
    Account The customer's account.
    Fax The customer's fax number.
    PurchaseOrder The customer's purchase order number.
    CustAcctNum The customer's account number.
    ShipVia The shipping method.
    DueDate The payment due date as UTC. Format is yyyyMMdd. Ex: 20200622
    Bill_Company The billing company.
    Bill_Address1 The billing address. Ex. 123 Main St.
    Bill_Address2 The billing address. Ex. Suite 1445
    Bill_City The billing city.
    Bill_State The billing state.
    Bill_Zip The billing zip code.
    Bill_Phone The billing phone number.
    Bill_Country The billing country.
    Ship_Company The shipping company.
    Ship_FirstName The shipping first name.
    Ship_LastName The shipping last name.
    Ship_Address1 The shipping address. Ex. 123 Main St.
    Ship_Address2 The shipping address. Ex. Suite 1445
    Ship_City The shipping city.
    Ship_State The shipping state.
    Ship_Zip The shipping zip code.
    Ship_Phone The shipping phone number.
    Ship_Country The shipping country.
    Ship_Country_Code The shipping country code.
    Tax_Code The tax code.
    As_PCLevel3 Flag that makes the invoice payment process as Level 3.
    Item The item name. See examples on how to include items.
    ID The non-inventory item ID. See examples on how to include items.
    InvtID The inventory item ID if it is from ePNInventory. See examples on how to include items.
    Qty The quantity of the item being sold. See examples on how to include items.
    Cost The cost of the item being sold. See examples on how to include items.
    Desc The item description. See examples on how to include items.
    Code The item commodity code. See examples on how to include items.
    Disc The item discount. See examples on how to include items.
    UOM The item unit of measure. See examples on how to include items.
    Request Example
    
    <?xml version="1.0" encoding="utf-8"?>
    <Request>
      <ePNAccount>080880</ePNAccount>
      <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
      <RequestType>billpay</RequestType>
      <Action>Modify</Action>
      <Invoice>987654386</Invoice>
      <Total>13.00</Total>
      <Bill_FirstName>Joe</Bill_FirstName>
      <Bill_LastName>Shmoe</Bill_LastName>
      <Email>joeshmoe@epn.com</Email>
      <Shipping>2.00</Shipping>
      <Tax>1.00</Tax>
      <DueDate>20210608</DueDate>
      <ShipVia>UPS</ShipVia>
      <Bill_Address1>124 Main Street</Bill_Address1>
      <Bill_City>Houston</Bill_City>
      <Bill_State>TX</Bill_State>
      <Bill_Zip>77558</Bill_Zip>
      <Ship_FirstName>Joe</Ship_FirstName>
      <Ship_LastName>Shmoe</Ship_LastName>
      <Ship_Address1>124 Main Street</Ship_Address1>
      <Ship_City>Houston</Ship_City>
      <Ship_State>TX</Ship_State>
      <Ship_Zip>77558</Ship_Zip>
      <Items>
        <Item>
          <Item>abc123</Item>
          <ID>ggg44f32d</ID>
          <Cost>4.00</Cost>
          <Desc>blue hat</Desc>
          <Qty>2</Qty>
        </Item>
        <Item>
          <Item>ddd333</Item>
          <ID>ggg44554d</ID>
          <Cost>1.00</Cost>
          <Desc>red hat</Desc>
          <Qty>2</Qty>
        </Item>
      </Items>
    </Request>
    
    
    Example Response:
    
    <?xml version="1.0" encoding="utf-8"?>
    <Response>
      <BalanceDue>13</BalanceDue>
      <Details>
        <Bill_Address1>124 Main Street</Bill_Address1>
        <Bill_City>Houston</Bill_City>
        <Bill_FirstName>Joe</Bill_FirstName>
        <Bill_LastName>Shmoe</Bill_LastName>
        <Bill_State>TX</Bill_State>
        <Bill_Zip>77558</Bill_Zip>
        <DueDate>20210608</DueDate>
        <Email>joeshmoe@epn.com</Email>
        <ShipVia>UPS</ShipVia>
        <Ship_Address1>124 Main Street</Ship_Address1>
        <Ship_City>Houston</Ship_City>
        <Ship_FirstName>Joe</Ship_FirstName>
        <Ship_LastName>Shmoe</Ship_LastName>
        <Ship_State>TX</Ship_State>
        <Ship_Zip>77558</Ship_Zip>
      </Details>
      <Invoice>987654386</Invoice>
      <InvoiceDate>20200610</InvoiceDate>
      <PaymentURL>https://www.eprocessingnetwork.com/cgi-bin/wo/billpay.pl?a=080880&t=2006-8e68o2ey</PaymentURL>
      <RespText>Invoice Modified Successfully</RespText>
      <Shipping>2.00</Shipping>
      <Status>Open</Status>
      <Tax>1.00</Tax>
      <Total>13</Total>
    </Response>
    
    
    
    Request Example:
    		
    		JSON: {
    		  "ePNAccount": "080880",
    		  "RestrictKey": "yFqqXJh9pqnugfr",
    		  "RequestType": "billpay",
    		  "Action": "Modify",
    		  "Invoice": "987654386",
    		  "Total": "13.00",
    		  "Bill_FirstName": "Joe",
    		  "Bill_LastName": "Shmoe",
    		  "Email": "joeshmoe@epn.com",
    		  "Shipping": "2.00",
    		  "Tax": "1.00",
    		  "DueDate": "20210608",
    		  "ShipVia": "UPS",
    		  "Bill_Address1": "124 Main Street",
    		  "Bill_City": "Houston",
    		  "Bill_State": "TX",
    		  "Bill_Zip": "77558",
    		  "Ship_FirstName": "Joe",
    		  "Ship_LastName": "Shmoe",
    		  "Ship_Address1": "124 Main Street",
    		  "Ship_City": "Houston",
    		  "Ship_State": "TX",
    		  "Ship_Zip": "77558",
    		  "Items": [{
                   "Item": "abc123",
                   "ID": "ggg44f32d",
                   "Cost": "4.00",
                   "Desc": "blue hat",
                   "Qty": "2"
                },
    		            {
                   "Item": "ddd333",
                   "ID": "ggg44554d",
                   "Cost": "1.00",
                   "Desc": "red hat",
                   "Qty": "2"
                }]
            }
    		
    		
    Example Response:
    
    JSON: {
      "BalanceDue": "13.00",
      "Details":{
           "Bill_Address1": "124 Main Street",
           "Bill_City": "Houston",
           "Bill_FirstName": "Joe",
           "Bill_LastName": "Shmoe",
           "Bill_State": "TX",
           "Bill_Zip": "77558",
           "DueDate": "20210608",
           "Email": "joeshmoe@epn.com",
           "ShipVia": "UPS",
           "Ship_Address1": "124 Main Street",
           "Ship_City": "Houston",
           "Ship_FirstName": "Joe",
           "Ship_LastName": "Shmoe",
           "Ship_State": "TX",
           "Ship_Zip": "77558"
              },
      "Invoice": "987654386",
      "InvoiceDate": "20200610",
      "PaymentURL": "https://www.eprocessingnetwork.com/cgi-bin/wo/billpay.pl?a=080880&t=2006-8e68o2ey",
      "RespText": "Invoice Modified Successfully",
      "Shipping": "2.00",
      "Status": "Open",
      "Tax": "1.00",
      "Total": "13.00"
    }
    
    

    Send Invoice

    The following list shows each field, along with the possible values that can be passed:

    Required:
    Field Description
    ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
    RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
    RequestType billpay
    Action Send
    Invoice The invoice number of the invoice to send.
    Request Example
    
    <?xml version="1.0" encoding="utf-8"?>
    <Request>
      <ePNAccount>080880</ePNAccount>
      <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
      <RequestType>billpay</RequestType>
      <Action>Send</Action>
      <Invoice>987654386</Invoice>
    </Request>
    
    
    Example Response:
    
    <?xml version="1.0" encoding="utf-8"?>
    <Response>
      <Invoice>987654386</Invoice>
      <RespText>Invoice Sent</RespText>
    </Response>
    
    
    
    Request Example:
    		
    		JSON: {
    		  "ePNAccount": "080880",
    		  "RestrictKey": "yFqqXJh9pqnugfr",
    		  "RequestType": "billpay",
    		  "Action": "Send",
    		  "Invoice": "987654386"
    		}
    		
    		
    Example Response:
    
    JSON: {
      "Invoice": "987654386",
      "RespText": "Invoice Sent"
    }
    
    

    Get Invoice

    You can load a single invoice or multiple invoices in one request. Get requests for multiple invoices can be seen below the get single invoice request table and examples. The following list shows each field, along with the possible values that can be passed:

    Required for Getting Single Invoice:
    Field Description
    ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
    RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
    RequestType billpay
    Action Get
    Invoice The invoice number of the invoice to get.
    Request Example
    
    <?xml version="1.0" encoding="utf-8"?>
    <Request>
      <ePNAccount>080880</ePNAccount>
      <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
      <RequestType>billpay</RequestType>
      <Action>Get</Action>
      <Invoice>98765438</Invoice>
    </Request>
    
    
    Example Response:
    
    <?xml version="1.0" encoding="utf-8"?>
    <Response>
      <BalanceDue>0</BalanceDue>
      <Details>
        <Bill_Address1>124 Main Street</Bill_Address1>
        <Bill_City>Houston</Bill_City>
        <Bill_FirstName>Joe</Bill_FirstName>
        <Bill_LastName>Shmoe</Bill_LastName>
        <Bill_State>TX</Bill_State>
        <Bill_Zip>77558</Bill_Zip>
        <DueDate>20210608</DueDate>
        <Email>joeshmoe@epn.com</Email>
        <ShipVia>UPS</ShipVia>
        <Ship_Address1>124 Main Street</Ship_Address1>
        <Ship_City>Houston</Ship_City>
        <Ship_FirstName>Joe</Ship_FirstName>
        <Ship_LastName>Shmoe</Ship_LastName>
        <Ship_State>TX</Ship_State>
        <Ship_Zip>77558</Ship_Zip>
      </Details>
      <Invoice>987654386</Invoice>
      <InvoiceDate>20200610</InvoiceDate>
      <PaymentURL>https://www.eprocessingnetwork.com/cgi-bin/wo/billpay.pl?a=080880&t=2006-8e68o2ey</PaymentURL>
      <Payments>
        <Amount>13.00</Amount>
        <AuthCode>917076</AuthCode>
        <ExpDate>06/21</ExpDate>
        <PaymentDate>20200625</PaymentDate>
        <LastFour>X5454</LastFour>
        <PaymentID>370596</PaymentID>
        <PaymentType>MASTERCARD</PaymentType>
        <XactID>20200625113852-080880-176583</XactID>
      </Payments>
      <RespText>Invoice Modified Successfully</RespText>
      <Shipping>2.00</Shipping>
      <Status>Paid</Status>
      <Tax>1.00</Tax>
      <Total>13</Total>
    </Response>
    
    
    
    Request Example:
    		
    		JSON: {
    		  "ePNAccount": "080880",
    		  "RestrictKey": "yFqqXJh9pqnugfr",
    		  "RequestType": "billpay",
    		  "Action": "Get",
    		  "Invoice": "987654386"
    	    }
    		
    		
    Example Response:
    
    JSON: {
      "BalanceDue": "0",
      "Details":{
           "Bill_Address1": "124 Main Street",
           "Bill_City": "Houston",
           "Bill_FirstName": "Joe",
           "Bill_LastName": "Shmoe",
           "Bill_State": "TX",
           "Bill_Zip": "77558",
           "DueDate": "20210608",
           "Email": "joeshmoe@epn.com",
           "ShipVia": "UPS",
           "Ship_Address1": "124 Main Street",
           "Ship_City": "Houston",
           "Ship_FirstName": "Joe",
           "Ship_LastName": "Shmoe",
           "Ship_State": "TX",
           "Ship_Zip": "77558"
              },
      "Invoice": "987654386",
      "InvoiceDate": "20200610",
      "PaymentURL": "https://www.eprocessingnetwork.com/cgi-bin/wo/billpay.pl?a=080880&t=2006-8e68o2ey",
      "Payments":[{
           "Amount": "13.00",
           "AuthCode": "917076",
           "ExpDate": "06/20",
           "LastFour": "X5454",
           "PaymentDate": "20200625",
           "PaymentID": "370596",
           "PaymentType": "MASTERCARD",
           "XactID": "20200625113852-080880-176583"
             }],
      "RespText": "Invoice Modified Successfully",
      "Shipping": "2.00",
      "Status": "Paid",
      "Tax": "1.00",
      "Total": "13.00"
    }
    
    

    The following list shows each field, along with the possible values that can be passed:

    Required for Getting Multiple Invoices:
    Field Description
    ePNAccount The merchant's eProcessingNetwork account number. Do not submit the Business Name or the Merchant ID assigned by the Acquiring Bank or Merchant Service Provider.
    RestrictKey The merchant's secure code located in the Processing Controls section of the Merchant Support Center (login required).
    RequestType billpay
    Action Get
    Status Use first letter of status (Paid, Open, Voided, Deleted) for the value:
    • P
    • O
    • V
    • D
    LookIn One of the following:
    • Invoice
    • InvoiceDate
    • DueDate
    • PaidDate
    Start One of the following:
    • For LookIn value of Invoice, it would be the invoice number to start with.
    • For LookIn value of InvoiceDate, it would be the start date. Ex: 20201001 (YYYYMMDD)
    • For LookIn value of DueDate, it would be the start date. Ex: 20201001 (YYYYMMDD)
    • For LookIn value of PaidDate, it would be the start date. Ex: 20201001 (YYYYMMDD)
    End One of the following:
    • For LookIn value of Invoice, it would be the invoice number to end with.
    • For LookIn value of InvoiceDate, it would be the end date. Ex: 20201015 (YYYYMMDD)
    • For LookIn value of DueDate, it would be the end date. Ex: 20201015 (YYYYMMDD)
    • For LookIn value of PaidDate, it would be the end date. Ex: 20201001 (YYYYMMDD)
    SkipDetails Use this if you do not need the full detail set which includes the Billing info, Shipping, info etcetera. You will still get the payment information regardless.
    • 1
    Request Example
    
    <?xml version="1.0" encoding="utf-8"?>
    <Request>
      <ePNAccount>080880</ePNAccount>
      <RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
      <RequestType>billpay</RequestType>
      <Action>Get</Action>
      <Status>P</Status>
      <LookIn>PaidDate</LookIn>
      <Start>20201001</Start>
      <End>20201015</End>
      <SkipDetails>1</SkipDetails>
    </Request>
    
    
    Example Response:
    
    <?xml version="1.0" encoding="utf-8"?>
    <Response>
      <InvoiceList>
        <BalanceDue>0</BalanceDue>
        <Invoice>124124</Invoice>
        <InvoiceDate>20201014</InvoiceDate>
        <Payments>
          <Payment>
            <Amount>10.00</Amount>
            <AuthCode>Accepted</AuthCode>
            <PaymentDate>20201014</PaymentDate>
            <PaymentID>381538</PaymentID>
            <PaymentType>Cash</PaymentType>
            <XactID>20201014152749-080880-176923</XactID>
          </Payment>
        </Payments>
        <Shipping></Shipping>
        <Status>Paid</Status>
        <Tax></Tax>
        <Total>10.00</Total>
      </InvoiceList>
      <InvoiceList>
        <BalanceDue>0</BalanceDue>
        <Invoice>124125</Invoice>
        <InvoiceDate>20201014</InvoiceDate>
        <Payments>
          <Payment>
            <Amount>10.00</Amount>
            <AuthCode>418860</AuthCode>
            <ExpDate>10/20</ExpDate>
            <LastFour>X5454</LastFour>
            <PaymentDate>20201014</PaymentDate>
            <PaymentID>381539</PaymentID>
            <PaymentType>MASTERCARD</PaymentType>
            <XactID>20201014152938-080880-176924</XactID>
          </Payment>
        </Payments>
        <Shipping></Shipping>
        <Status>Paid</Status>
        <Tax></Tax>
        <Total>10.00</Total>
      </InvoiceList>
      <RespText>Invoice Found</RespText>
    </Response>
    
    
    
    Request Example:
    		
    		JSON: {
    		  "ePNAccount": "080880",
    		  "RestrictKey": "yFqqXJh9pqnugfr",
    		  "RequestType": "billpay",
    		  "Action": "Get",
    		  "Invoice": "987654386",
    		  "Status": "P",
      "LookIn": "PaidDate",
      "Start": "20201001",
      "End": "20201015",
      "SkipDetails": "1"
    }
    		
    		
    Example Response:
    
    JSON: {
      "RespText": "Invoice Found",
      "InvoiceList":[{
           "Payments":[{
                "PaymentID": 381538,
                "AuthCode": "Accepted",
                "Amount": 10.00,
                "PaymentType": "Cash",
                "PaymentDate": "20201014",
                "XactID": "20201014152749-080880-176923"
              ]},
           "InvoiceDate": 20201014,
           "Invoice": "124124",
           "Total": "10.00",
           "Tax": null,
           "Shipping": null,
           "BalanceDue": 0,
           "Status": "Paid"
              },
              {
           "Payments":[{
                "PaymentID": 381539,
                "AuthCode": "418860",
                "Amount": 10.00,
                "PaymentType": "MASTERCARD",
                "PaymentDate": "20201014",
                "XactID": "20201014152938-080880-176924",
                "ExpDate": "10/20",
                "LastFour": "X5454"
              ]},
           "InvoiceDate": 20201014,
           "Invoice": "124125",
           "Total": "10.00",
           "Tax": null,
           "Shipping": null,
           "BalanceDue": 0,
           "Status": "Paid"
        }]
    }
    
    

    POST Examples

    The sample source code shown below uses hard-coded values. You, as a programmer, must replace these hard-coded values with the values required for each request type. The hard-coded test account number can be used if you do not have an eProcessing Network developer account. A test transaction can be run at anytime by simply using the merchant's eProcessing Network account number as the credit card number, whether you are using a test account number or a live account number. The list of programming language examples include:


    • PERL
    • C#
    • PHP
    • Java
    PERL

    This PERL source requires PERL modules/libraries that are widely available. It is assumed here that the programmer understands the importance of these modules/libraries, and know how to install/use them.

    
    # Load the required modules.
    use strict;
    use warnings;
    use LWP::UserAgent;
    use HTTP::Request;
    use XML::Simple;
    
    # Example hash of post parameters and values
    my %hash_params = (
        "ePNAccount" => "080880",
        "RestrictKey" => "yFqqXJh9Pqnugfr",
        "RequestType" => "transaction",
        "TranType" => "Sale",
        "Total" => "10.00",
        "Address" => "123 Main Street",
        "Zip" => "77008",
        "CardNo" => "4111111111111111",
        "ExpMonth" => "12",
        "ExpYear" => "28",
        "CVV2Type" => "1",
        "CVV2" => "123",
    );
    
    # Convert the hash to XML
    my $xml = XMLout(\%hash_params, RootName => 'Request', KeepRoot => 0, NoAttr => 1);
    
    # Use the transaction request URL
    my $uri = 'https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/transact.pl';
    
    # Create the HTTP request
    my $req = HTTP::Request->new( 'POST', $uri );
    
    # Set the header to text/xml
    $req->header( 'Content-Type' => 'text/xml' );
    
    # Add the post parameters as XML
    $req->content( $xml );
    
    # Create the user agent and make sure it uses TLS v1.2
    my $ua = LWP::UserAgent->new(
        ssl_opts => {
                SSL_version => 'TLSv12:!SSLv2:!SSLv3:!TLSv1:!TLSv11',
        }
    );
    
    # Set the post request timeout
    $ua->timeout(90);
    
    # Post the request and use the response
    my $response = $ua->request( $req );
    
    
    
    # Load the required modules.
    use strict;
    use warnings;
    use LWP::UserAgent;
    use HTTP::Request;
    use JSON;
    
    # Example hash of post parameters and values
    my %hash_params = (
        "ePNAccount" => "080880",
        "RestrictKey" => "yFqqXJh9Pqnugfr",
        "RequestType" => "transaction",
        "TranType" => "Sale",
        "Total" => "10.00",
        "Address" => "123 Main Street",
        "Zip" => "77008",
        "CardNo" => "4111111111111111",
        "ExpMonth" => "12",
        "ExpYear" => "28",
        "CVV2Type" => "1",
        "CVV2" => "123",
    );
    
    # Convert the hash to JSON
    my $json = encode_json \%hash_params;
    
    # Use the transaction request URL
    my $uri = 'https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/transact.pl';
    
    # Create the HTTP request
    my $req = HTTP::Request->new( 'POST', $uri );
    
    # Set the header to application/json
    $req->header( 'Content-Type' => 'application/json' );
    
    # Add the post parameters as JSON
    $req->content( $json );
    
    # Create the user agent and make sure it uses TLS v1.2
    my $ua = LWP::UserAgent->new(
        ssl_opts => {
                SSL_version => 'TLSv12:!SSLv2:!SSLv3:!TLSv1:!TLSv11',
        }
    );
    
    # Set the post request timeout
    $ua->timeout(90);
    
    # Post the request and use the response
    my $response = $ua->request( $req );
    
    
    C#

    This C# source requires C# modules/libraries that are widely available. It is assumed here that the programmer understands the importance of these modules/libraries, and know how to install/include them.

    
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Xml.Linq;
    
    namespace CSharp_Post_Example
    {
        class XML_Post
        {
            public void Post()
            {
                // Ensure minium of TLS 1.2 is being used
                System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 | System.Net.SecurityProtocolType.Tls13;
    
                // Set up transaction post request
                var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://dev17.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/transact.pl");
                httpWebRequest.ContentType = "text/xml";
                httpWebRequest.Method = "POST";
    
                //Example Dictionary of post paramaters
                Dictionary<string, string> post_params = new Dictionary<string, string>();
                post_params.Add("ePNAccount", "080880");
                post_params.Add("RestrictKey", "yFqqXJh9Pqnugfr");
                post_params.Add("RequestType", "transaction");
                post_params.Add("TranType", "Sale");
                post_params.Add("Total", "10.00");
                post_params.Add("Address", "123 Main Street");
                post_params.Add("Zip", "77008");
                post_params.Add("CardNo", "4111111111111111");
                post_params.Add("ExpMonth", "12");
                post_params.Add("ExpYear", "28");
                post_params.Add("CVV2Type", "1");
                post_params.Add("CVV2", "123");
    
                // Serialize the parameters into json and write it to the request
                using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
                {
                    XElement el = new XElement("Request", post_params.Select(kv => new XElement(kv.Key, kv.Value)));
                    streamWriter.Write(el);
                }
    
                // Get the response
                var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
                var result = "";
                using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                {
                    result = streamReader.ReadToEnd();
                }
    
                Console.Out.Write(result);
            }
        }
    }
    
    
    
    
    using Newtonsoft.Json;
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Net;
    
    namespace CSharp_Post_Example
    {
        class JSON_Post
        {
            public void Post()
            {
                // Ensure minium of TLS 1.2 is being used
                System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 | System.Net.SecurityProtocolType.Tls13;
    
                // Set up transaction post request
                var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/transact.pl");
                httpWebRequest.ContentType = "application/json";
                httpWebRequest.Method = "POST";
    
                //Example Dictionary of post paramaters
                Dictionary<string, string> post_params = new Dictionary<string, string>();
                post_params.Add("ePNAccount", "080880");
                post_params.Add("RestrictKey", "yFqqXJh9Pqnugfr");
                post_params.Add("RequestType", "transaction");
                post_params.Add("TranType", "Sale");
                post_params.Add("Total", "10.00");
                post_params.Add("Address", "123 Main Street");
                post_params.Add("Zip", "77008");
                post_params.Add("CardNo", "4111111111111111");
                post_params.Add("ExpMonth", "12");
                post_params.Add("ExpYear", "28");
                post_params.Add("CVV2Type", "1");
                post_params.Add("CVV2", "123");
    
                // Serialize the parameters into json and write it to the request
                using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
                {
                    string json = JsonConvert.SerializeObject(post_params);
                    streamWriter.Write(json);
                }
    
                // Get the response
                var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
                var result = "";
                using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                {
                    result = streamReader.ReadToEnd();
                }
    
                Console.Out.Write(result);
            }
        }
    }
    
    
    PHP

    This PHP source requires PHP modules/libraries that are widely available. It is assumed here that the programmer understands the importance of these modules/libraries, and know how to install/include them. They must also know how to set up a local issuer certificate in order to post securely.

    
    <?php
    
        // Initiate cURL w/ protocol & URL of remote host
        $ch = curl_init('https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/transact.pl');
        curl_setopt($ch, CURLOPT_POST, 1);
    
        // Force requsts to use TLS 1.2
        curl_setopt($ch, CURLOPT_SSLVERSION, 6);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
        // Set the Content-Type header and XML Post fields
        curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml"));
        curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_params);
    
        // Execute the post
        $output = curl_exec($ch);
    
        //Close curl
        curl_close($ch);
    
    ?>
    
    
    
    <?php
    
        $data = array(
            "ePNAccount" => "080880",
            "RestrictKey" => "yFqqXJh9Pqnugfr",
            "RequestType" => "transaction",
            "TranType" => "Sale",
            "Total" => "10.00",
            "Address" => "123 Main Street",
            "Zip" => "77008",
            "CardNo" => "4111111111111111",
            "ExpMonth" => "12",
            "ExpYear" => "28",
            "CVV2Type" => "1",
            "CVV2" => "123",
        );
    
        $json_params = json_encode($data);
    
        // Initiate cURL w/ protocol & URL of remote host
        $ch = curl_init('https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/transact.pl');
        curl_setopt($ch, CURLOPT_POST, 1);
    
        // Force requsts to use TLS 1.2
        curl_setopt($ch, CURLOPT_SSLVERSION, 6);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
        // Set the Content-Type header and XML Post fields
        curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
        curl_setopt($ch, CURLOPT_POSTFIELDS, $json_params);
    
        // Execute the post
        $output = curl_exec($ch);
    
        //Close curl
        curl_close($ch);
    
    ?>
    
    
    Java

    This Java source requires Java modules/libraries that are widely available. It is assumed here that the programmer understands the importance of these modules/libraries, and know how to install/include them.

    
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    public class XML_Post_Example
    {
        public static void main(String[] args)
        {
            // Demo post parameters
            final String xml_post_params_string = "<Request><ePNAccount>080880</ePNAccount><RestrictKey>yFqqXJh9Pqnugfr</RestrictKey><RequestType>transaction</RequestType><TranType>Sale</TranType><Total>10.00</Total><Address>123 Main Street</Address><Zip>77008</Zip><CardNo>4111111111111111</CardNo><ExpMonth>12</ExpMonth><ExpYear>28</ExpYear><CVV2Type>1</CVV2Type><CVV2>123</CVV2></Request>";
    
            try
            {
                // Set up transaction post request
                final URL url = new URL ("https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/transact.pl");
                final HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setRequestMethod("POST");
    
                // Set timeout as per needs
                connection.setConnectTimeout(20000);
                connection.setReadTimeout(90000);
    
                // Set content type to application/json
                connection.setRequestProperty("Content-type", "text/xml");
                connection.setRequestProperty("Accept", "text/xml");
    
                // Allow output
                connection.setDoOutput(true);
    
                // Post the request
                try(OutputStream os = connection.getOutputStream())
                {
                    final byte[] input = xml_post_params_string.getBytes("utf-8");
                    os.write(input, 0, input.length);
                }
    
                // Get the response
                try(BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8")))
                {
                    StringBuilder response = new StringBuilder();
                    String responseLine = null;
                    while ((responseLine = br.readLine()) != null)
                    {
                        response.append(responseLine.trim());
                    }
    
                    System.out.println(response.toString());
                }
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
        }
    }
    
    
    
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.HashMap;
    
    import com.google.gson.Gson;
    import com.google.gson.JsonObject;
    
    public class JSON_Post_Example
    {
        public static void main(String[] args)
        {
            // Demo post parameters
            final HashMap<String, String> post_params = new HashMap<String, String>();
    		post_params.put("ePNAccount", "080880");
            post_params.put("RestrictKey", "yFqqXJh9Pqnugfr");
            post_params.put("RequestType", "transaction");
            post_params.put("TranType", "Sale");
            post_params.put("Total", "10.00");
            post_params.put("Address", "123 Main Street");
            post_params.put("Zip", "77008");
            post_params.put("CardNo", "4111111111111111");
            post_params.put("ExpMonth", "12");
            post_params.put("ExpYear", "28");
            post_params.put("CVV2Type", "1");
            post_params.put("CVV2", "123");
    
            try
            {
                // Set up transaction post request
                final URL url = new URL ("https://www.eprocessingnetwork.com/cgi-bin/epn/secure/tdbe/transact.pl");
                final HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setRequestMethod("POST");
    
                // Set content type to application/json
                connection.setRequestProperty("Content-type", "application/json");
                connection.setRequestProperty("Accept", "application/json");
    
                // Allow output
                connection.setDoOutput(true);
    
                // Convert post parameters to JSON using a third party JSON parser such as Gson.
                final Gson gson = new Gson();
                final String json_params = gson.toJson(post_params);
    
                // Post the request
                try(OutputStream os = connection.getOutputStream())
                {
                    final byte[] input = json_params.getBytes("utf-8");
                    os.write(input, 0, input.length);
                }
    
                // Get the response
                try(BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8")))
                {
                    StringBuilder response = new StringBuilder();
                    String responseLine = null;
                    while ((responseLine = br.readLine()) != null)
                    {
                        response.append(responseLine.trim());
                    }
    
                    // Convert the response to a JSON object
                    final JsonObject json_response =  gson.fromJson(response.toString(), JsonObject.class);
                    System.out.println(json_response.toString());
                }
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
        }
    }