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.
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)
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
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.
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:
|
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 |
<?xml version="1.0" encoding="utf-8"?>
<Request>
<ePNAccount>080880</ePNAccount>
<RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
<RequestType>transaction </RequestType>
</Request>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "transaction"
}
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:
|
CVV2
|
The CVV2 value on the card. If you submit 0 for CVV2Type, then submit this field as empty. |
<?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>
<?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>
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"
}
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)"
}
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. |
<?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>
<?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>
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"
}
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)"
}
<?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>
<?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>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "transaction",
"TranType": "Void",
"Total": "100.00",
"XactID": "20181128124125-080880-369"
}
JSON: {
"XactID": "20181128124125-080880-369-5",
"Success": "Y",
"RespText": "Successful",
"Invoice": "370",
"Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5"
}
<?xml version="1.0" encoding="utf-8"?>
<Request>
<ePNAccount>080880</ePNAccount>
<RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
<RequestType>transaction</RequestType>
<TranType>CloseBatch</TranType>
</Request>
<?xml version="1.0" encoding="utf-8"?>
<Response> <Success>Y</Success>
<RespText>Successfull</RespText>
<Tran_token>10CB7B1B-6D3B-1014-9AA-BD12B5</Tran_token>
</Response>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "transaction",
"TranType": "CloseBatch",
}
JSON: {
"XactID": "20181128124125-080880-369",
"Success": "Y",
"RespText": "Successful"
}
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.
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
|
EncFormat
|
BBPOS
View
|
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. |
<?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>
<?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>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "transaction",
"TranType": "Sale",
"Swiped": "1",
"Total": "1",
"Device": "ChipperBT",
"EncFormat": "BBPOS",
"EncData": "XXXXXXXXXXX",
"EmvData": "XXXXXXXXXXX"
}
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)"
}
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
|
EncFormat |
BBPOS
View
|
EncData
|
The P2PE KSN data and the P2PE Encrypted data must be concatenated together to become 'EncData' parameter. |
DoubleFallback
|
1 Value always = 1. |
<?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>
<?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>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "transaction",
"TranType": "Sale",
"Swiped": "1",
"Total": "1",
"Device": "ChipperBT",
"EncFormat": "BBPOS",
"EncData": "XXXXXXXXXXX",
"DoubleFallback": "1"
}
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)"
}
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
|
---|---|
Success
|
Indicates the success of 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. |
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
|
Device
|
ChipperBT
View
|
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. |
<?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>
<?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>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "transaction",
"TranType": "DebitSale",
"Swiped": "1",
"Total": "1",
"Device": "ChipperBT",
"EncFormat": "BBPOS",
"EncData": "XXXXXXXXXXX",
"EmvData": "XXXXXXXXXXX"
}
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)"
}
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
|
---|---|
Success
|
Indicates the success of 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. |
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
|
EncFormat |
BBPOS
View
|
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. |
<?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>
<?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>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "transaction",
"TranType": "Sale",
"Swiped": "1",
"Total": "1",
"Device": "ChipperBT",
"EncFormat": "BBPOS",
"EmvData": "XXXXXXXXXXX",
"SignatureFile": "CustomerSig.png",
"SignatureHexData": "89504E70D0A1A0..."
}
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)"
}
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
|
---|---|
Success
|
Indicates the success of 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. |
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. |
<?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>
<?xml version="1.0" encoding="utf-8"?>
<Response>
<Success>Y</Success>
<RespText>Successful</RespText>
</Response>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "signature",
"SignatureFile": "CustomerSig.png",
"SignatureHexData": "89504E70D0A1A0..."
}
JSON: {
"Success": "Y",
"RespText": "Successful"
}
Success
|
Indicates the success of the transaction
|
---|---|
RespText
|
The extended details of the "Success" indicator. |
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 |
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.
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. |
<?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>
<?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>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "transaction",
"TranType": "Sale",
"Total": "100.00",
"XactID": "20181128105925-080880-357",
"Address": "123 Street",
"Zip": "77008",
}
JSON: {
"XactID": "20181128124125-080880-369",
"Success": "Y",
"AuthCode": "010956",
"Invoice": "369",
"Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",
}
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.
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. |
<?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>
<?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>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "transaction",
"TranType": "Sale",
"Total": "100.00",
"Identifier": "customer@gmail.com",
}
JSON: {
"XactID": "20181128124125-080880-369",
"Success": "Y",
"AuthCode": "010956",
"Invoice": "369",
"Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5",
}
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
|
EncFormat
|
BBPOS
View
|
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. |
<?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>
<?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>
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"
}
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)"
}
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
|
---|---|
Success
|
Indicates the success of 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. |
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
|
|
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
|
EncFormat |
BBPOS
View
|
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. |
<?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>
<?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>
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"
}
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)",
}
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
|
---|---|
Success
|
Indicates the success of 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. |
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.
|
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. |
<?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>
<?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>
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",
}
}
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"
}
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
|
---|---|
Success
|
Indicates the success of 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. |
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:
Field | Description |
---|---|
MerchantName
|
Then business name description to be displayed on the cardholder's credit card statement on a per transaction basis. |
<?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>
<?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>
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"
}
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)"
}
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
|
---|---|
Success
|
Indicates the success of 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. |
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). |
<?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>
<?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>
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"
}
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)"
}
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
|
---|---|
Success
|
Indicates the success of 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. |
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:
<?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>
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
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"
}
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
When testing, you can trigger an expected response value based on the specific key value submitted.
The Success Key can be one of three values to indicate if the transaction was successful or not.
Total | Success Key Value |
---|---|
2.02 |
Y - Approved |
2.01
|
N - Declined |
2.011
|
U - Unable to process the transaction. |
<?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>
<?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>
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"
}
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)"
}
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
|
---|---|
Success
|
Indicates the success of 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. |
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 |
<?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>
<?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>
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"
}
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"
}
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
|
---|---|
Success
|
Indicates the success of 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. |
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) |
<?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>
<?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>
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"
}
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)"
}
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
|
---|---|
Success
|
Indicates the success of 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. |
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) |
<?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>
<?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>
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"
}
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"
}
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
|
---|---|
Success
|
Indicates the success of 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. |
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.
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. |
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/mscThe 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:
The Recur System sends the following to the postback URL for Cancel transactions:
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:
|
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 .
|
<?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>
<?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>
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"
}
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"
}
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
|
---|---|
Success
|
Indicates the success of 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. |
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. |
<?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>
<?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>
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",
}
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"
}
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
|
---|---|
Success
|
Indicates the success of 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. |
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. |
<?xml version="1.0" encoding="utf-8"?>
<Request>
<ePNAccount>080880</ePNAccount>
<RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
<RequestType>recur</RequestType>
<TranType>Cancel</TranType>
<RecurID>369</RecurID>
</Request>
<?xml version="1.0" encoding="utf-8"?>
<Response>
<Success>Y</Success>
<RespText>Successful</RespText>
</Response>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "recur",
"TranType": "Cancel",
"RecurID": "369"
}
JSON: {
"Success": "Y",
"RespText": "Successful"
}
Success
|
Indicates the success of the transaction
|
---|---|
RespText
|
The extended details of the "Success" indicator. |
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. |
<?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>
<?xml version="1.0" encoding="utf-8"?>
<Response>
<Success>Y</Success>
<RespText>Successful</RespText>
</Response>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "ModifyCreditCard",
"TranType": "Cancel",
"CardNo": "4111111111111111",
"ExpMonth": "12",
"ExpYear": "29",
"CVV2Type": "1",
"CVV2": "123",
"RecurID": "369"
}
JSON: {
"Success": "Y",
"RespText": "Successful"
}
Success
|
Indicates the success of the transaction
|
---|---|
RespText
|
The extended details of the "Success" indicator. |
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. |
<?xml version="1.0" encoding="utf-8"?>
<Request>
<ePNAccount>080880</ePNAccount>
<RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
<RequestType>recur</RequestType>
<TranType>Get</TranType>
<RecurID>547</RecurID>
</Request>
<?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>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "recur",
"TranType": "Get",
"RecurID": "547"
}
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"
}
}
Success
|
Indicates the success of the transaction
|
---|---|
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)
|
AccountClass
|
The check account class. (Only present if payment type is Check)
|
ProcessingClass
|
The check processing class. (Only present if payment type is Check)
|
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.
|
Status
|
The recur status. |
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. |
<?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>
<?xml version="1.0" encoding="utf-8"?>
<Response>
<Success>Y</Success>
<RespText>Successful</RespText>
</Response>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "recur",
"TranType": "Modify",
"Amount": "17.17",
"RecurID": "369"
}
JSON: {
"Success": "Y",
"RespText": "Successful"
}
Success
|
Indicates the success of the transaction
|
---|---|
RespText
|
The extended details of the "Success" indicator. |
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 |
<?xml version="1.0" encoding="utf-8"?>
<Request>
<ePNAccount>080880</ePNAccount>
<RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
<RequestType>status</RequestType>
<MerchReqID>123456ABC</MerchReqID>
</Request>
<?xml version="1.0" encoding="utf-8"?>
<Response>
<MerchReqID>123456ABC</MerchReqID>
<Success>N</Success>
<RespText>Transaction Not Found</RespText>
</Response>
<?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>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "status",
"MerchReqID": "123456ABC"
}
JSON: {
"MerchReqID": "123456ABC",
"Success": "N",
"RespTxt": "Transaction Not Found"
}
JSON: {
"MerchReqID": "123456ABC",
"Success": "Y",
"RespTxt": "Transaction Not Found",
"StatusMessage": "Transaction In Progress"
}
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.
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.
Y
- Display, RequiredN
- Do Not DisplayO
- Display, Not RequiredD
- Based on DL Required FlagI
- Based on ID Required FlagC
- Based on Nacha Supported FlagP
- Required for personal onlyB
- Required for business onlyYou 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.
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 |
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
|
reports |
ReportType
|
Batch |
<?xml version="1.0" encoding="utf-8"?>
<Request>
<ePNAccount>080880</ePNAccount>
<RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
<RequestType>report</RequestType>
<ReportType>Batch</ReportType>
</Request>
<?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>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "reports",
"ReportType": "Batch",
}
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.",
}
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
|
Zip
|
The customer's zip code. |
RespText
|
The response indicating whether or not transactions were found. |
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:
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. |
<?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>
<?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>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "reports",
"ReportType": "Activity",
"StartStamp": "20220101",
"EndStamp": "20220104",
}
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.",
}
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
|
Zip
|
The customer's zip code. |
RespText
|
The response indicating whether or not transactions were found. |
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:
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. |
<?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>
<?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>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "reports",
"ReportType": "Activity",
"StartStamp": "20220101",
"EndStamp": "20220104",
}
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.",
}
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
|
Zip
|
The customer's zip code. |
RespText
|
The response indicating whether or not transactions were found. |
Our Gift Cards API allows you to sell gift cards and create rewards programs by integrating with one of the supported Gift/Loyalty providers:
* 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.
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:
|
Total
|
The total amount of the transaction including taxes. For example, 100.00. Only include the digits and the decimal point. |
Device
|
BBPOS
View
|
EncFormat
|
BBPOS
View
|
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. |
<?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>
<?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>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "transaction",
"TranType": "GiftCardIssuance",
"Swiped": "1",
"Total": "100.00",
"Device": "ChipperBT",
"EncFormat": "BBPOS",
"EncData": "XXXXXXXXXXX"
}
JSON: {
"XactID": "20181128124125-080880-369",
"Success": "Y",
"RespText": "APPROVED 010956",
"AuthCode": "010956",
"Invoice": "369",
"Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5"
}
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
|
---|---|
Success
|
Indicates the success of 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. |
A sale against a gift card's value is called redemption. A redemption sale can be one of two TranType
s, depending on the response when the total amount of the transaction is processed. The TranType
s are listed below
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:
|
Total
|
The total amount of the transaction including taxes. For example, 100.00. Only include the digits and the decimal point. |
Device
|
BBPOS
View
|
EncFormat
|
BBPOS
View
|
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. |
<?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>
<?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>
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"
}
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)"
}
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
|
---|---|
Success
|
Indicates the success of 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. |
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
|
---|---|
Success
|
Indicates the success of 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. |
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:
|
Total
|
1.00 Set the total amount of the transaction to 1.00. |
Device
|
BBPOS
View
|
EncFormat
|
BBPOS
View
|
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. |
<?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>
<?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>
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"
}
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)"
}
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
|
---|---|
Success
|
Indicates the success of 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. |
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:
|
Total
|
10.00 Set the total amount they want to add to the card. |
Device
|
BBPOS
View
|
EncFormat
|
BBPOS
View
|
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. |
<?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>
<?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>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "transaction",
"TranType": "GiftAddValue",
"Swiped": "1",
"Total": "10.00"
"CustCode": "1234567",
"Device": "ChipperBT",
"EncFormat": "BBPOS",
"EncData": "XXXXXXXXXXX",
"EmvData": "XXXXXXXXXXX"
}
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)"
}
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
|
---|---|
Success
|
Indicates the success of 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. |
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:
|
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. |
<?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>
<?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>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "transaction",
"XactID": "20181128124125-080880-533321",
"TranType": "GiftVoid",
"Total": "1.00"
}
JSON: {
"XactID": "20181128124125-080880-369-5",
"Success": "Y",
"RespText": "APPROVED 010956",
"AuthCode": "010956",
"Invoice": "369",
"Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5"
}
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
|
---|---|
Success
|
Indicates the success of 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. |
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:
|
Total |
The total amount to transfer from one card to the other. |
Device |
BBPOS
View
|
EncFormat |
BBPOS
View
|
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. |
<?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>
<?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>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "transaction",
"XactID": "20181128124125-080880-533321",
"TranType": "GiftTransfer",
"Total": "1.00"
}
JSON: {
"XactID": "20181128124125-080880-369-5",
"Success": "Y",
"RespText": "APPROVED 010956",
"AuthCode": "010956",
"Invoice": "369",
"Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5"
}
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
|
---|---|
Success
|
Indicates the success of the transaction
|
RespText
|
The extended details of the "Success" indicator. |
Tran_token
|
A unique token used for pulling the transaction's Response Values again. |
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:
|
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:
|
NCNTran
|
The type of NACHA transaction. The default value is WEBCHECK. The merchant account must be configured correctly for the NACHA code. Values are:
|
NCNOverride
|
Optional. Forces a specific processing type, overriding the normal determination logic. Values are:
|
IdentifyDOBYear/IdentifySSN4
|
For merchants on Paya only. If your merchant account requires identification, submit one of these two fields:
|
<?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>
<?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>
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"
}
JSON: {
"XactID": "20181128124125-080880-123456-6",
"Success": "Y",
"RespText": "Approved",
"AuthCode": "010956",
"Invoice": "123456",
"Tran_token": "10CB7B1B-6D3B-1014-9AA-BD12B5"
}
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
|
---|---|
Success
|
Indicates the success of 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. |
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. |
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.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) |
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. |
<?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>
<?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>
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"
}
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"
}
]
}
action
|
The action of the response. |
---|---|
status
|
Indicates that records found:
|
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. |
The following list shows each field, along with the possible values that can be passed:
Field | Description |
---|---|
CustomerID
|
Parent Customer ID |
Action
|
AddAddress |
RecordType
|
|
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 |
<?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>
<?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>
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"
}
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"
}
]
}
action
|
The action of the response. |
---|---|
status
|
Indicates that records found:
|
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. |
The following list shows each field, along with the possible values that can be passed:
Field | Description |
---|---|
CustomerID
|
Parent Customer ID |
RecordType
|
|
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:
|
NCNRoutingNum |
The routing number of the account. |
NCNAccountNum |
The checking or savings account number. |
<?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>
<?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>
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"
}
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"
}
]
}
action
|
The action of the response. |
---|---|
status
|
Indicates that records found:
|
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. |
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. |
<?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>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "cdm",
"Action": "FindCustomer",
"Find": "Joe Shmoe"
}
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.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 |
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
|
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. |
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. |
<?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>
<?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>
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"
}]
}
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"
}
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
|
billpay |
Action
|
Modify |
Invoice
|
The invoice number of the invoice to modify. |
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. |
<?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>
<?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>
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"
}]
}
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"
}
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
|
billpay |
Action
|
Send |
Invoice
|
The invoice number of the invoice to send. |
<?xml version="1.0" encoding="utf-8"?>
<Request>
<ePNAccount>080880</ePNAccount>
<RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
<RequestType>billpay</RequestType>
<Action>Send</Action>
<Invoice>987654386</Invoice>
</Request>
<?xml version="1.0" encoding="utf-8"?>
<Response>
<Invoice>987654386</Invoice>
<RespText>Invoice Sent</RespText>
</Response>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "billpay",
"Action": "Send",
"Invoice": "987654386"
}
JSON: {
"Invoice": "987654386",
"RespText": "Invoice Sent"
}
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:
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. |
<?xml version="1.0" encoding="utf-8"?>
<Request>
<ePNAccount>080880</ePNAccount>
<RestrictKey>yFqqXJh9pqnugfr</RestrictKey>
<RequestType>billpay</RequestType>
<Action>Get</Action>
<Invoice>98765438</Invoice>
</Request>
<?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>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "billpay",
"Action": "Get",
"Invoice": "987654386"
}
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:
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:
|
LookIn
|
One of the following:
|
Start
|
One of the following:
|
End
|
One of the following:
|
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.
|
<?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>
<?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>
JSON: {
"ePNAccount": "080880",
"RestrictKey": "yFqqXJh9pqnugfr",
"RequestType": "billpay",
"Action": "Get",
"Invoice": "987654386",
"Status": "P",
"LookIn": "PaidDate",
"Start": "20201001",
"End": "20201015",
"SkipDetails": "1"
}
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"
}]
}
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:
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 );
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);
}
}
}
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);
?>
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();
}
}
}