QuantumGateway: The Evolution of Payment Processing

We have developed our Database Engine (QGWdbe) for our customers who collect and save ALL customer information and only wish to process the credit card through us.

With this API you can either collect your customers Payment Information or let the QGWdatabase Engine collect it.

Post URL: https://secure.quantumgateway.com/cgi/qgwdbe.php

Recurring Help PDF
API PDF - Last update July 3rd, 2010

Required Fields

Gateway Login - gwlogin
Your assigned Gateway Login.
Example:
<input name="gwlogin" type="hidden" value="your_value">

Approved Post Back URL - post_return_url_approved
URL for customer to return to after they have completed a Successful payment.
Example:
<input name="post_return_url_approved" type="hidden" value="http://www.mydomain.com/dapproved.html">

Declined Post Back URL - post_return_url_declined
URL for customer to return to after they have completed a Declined payment.
Example:
<input name="post_return_url_declined" type="hidden" value="http://www.mydomain.com/declined.html">

ID - ID
The ID can be anything you wish. ID, email address, username, etc. Something that will get updated when they click on Finish
Example:
<input name="ID" type="hidden" value="your_value">

Amount - amount
Numerical value only. Example 19.90
Minimum value of 0.01
Example:
<input name="amount" type="hidden" value="your_value">

Billing Address - BADDR1
Example:
<input name="BADDR1" type="hidden" value="your_value">

Billing Zip - BZIP1
Example:
<input name="BZIP1" type="hidden" value="your_value">

Billing Information

Billing First Name - FNAME
Example:
<input name="FNAME" type="hidden" value="your_value">

Billing Last Name - LNAME
Example:
<input name="LNAME" type="hidden" value="your_value">

Billing City - BCITY
Example:
<input name="BCITY" type="hidden" value="your_value">

Billing State - BSTATE
Example:
<input name="BSTATE" type="hidden" value="your_value">

Billing Country - BCOUNTRY
Example:
<input name="BCOUNTRY" type="hidden" value="your_value">

Email Address - BCUST_EMAIL
Example:
<input name="BCUST_EMAIL" type="hidden" value="your_value">

Shipping Information

Shipping First Name - SFNAME
Example:
<input name="SFNAME" type="hidden" value="your_value">

Shipping Last Name - SLNAME
Example:
<input name="SLNAME" type="hidden" value="your_value">

Shipping Address - SADDR1
Example:
<input name="SADDR1" type="hidden" value="your_value">

Shipping City - SCITY
Example:
<input name="SCITY" type="hidden" value="your_value">

Shipping State - SSTATE
Example:
<input name="SSTATE" type="hidden" value="your_value">

Shipping Zip - SZIP1
Example:
<input name="SZIP1" type="hidden" value="your_value">

Shipping Country - SCOUNTRY
Example:
<input name="SCOUNTRY" type="hidden" value="your_value">

Payment Information

Credit Card Number - ccnum
Dashes and spaces are not allowed in the credit card number.
If this item is not submitted, the gateway will request it.
Example:
<input name="ccnum" type="hidden" value="your_value">

Credit Card Expiration Year - ccyr
2 or 4 digit expiration year.
This is the two or four digit expiration year.
If this item is not submitted, the gateway will request it.
Example:
<input name="ccyr" type="hidden" value="your_value">

Credit Card Expiration Month - ccmo
This is the two digit expiration month. Example 04 or 12.
If this item is not submitted, the gateway will request it.
Example:
<input name="ccmo" type="hidden" value="your_value">

CVV - CVV2
Security code on the back or front of the credit card
Example:
<input name="CVV2" type="hidden" value="your_value">

Type Of CVV2 being sent - CVVtype
0 - Not Passing CVV2
1 - CVV2 is being passed
2 - CVV2 on card is unreadable
9 - Card does not have CVV2 imprint
Example:
<input name="CVVtype" type="hidden" value="your_value">

ABA/Routing Number - aba
9 digit routing number.
Please make sure you are setup to use EFT.
Example:
<input name="aba" type="hidden" value="your_value">

Checking Account Number - checkacct
Please make sure you are setup to use EFT.
Example:
<input name="checkacct" type="hidden" value="your_value">

Payment Type - trans_method
CC for Credit Card
EFT for Electronic Funds Transfer
CC is used by default if Payment Type is not sent.
Example:
<input name="trans_method" type="hidden" value="CC">

Optional Information

Response Method - ResponseMethod
The options for this field are POST or GET.
By default POST is used if GET is not submitted.
POST will show a Finish button for your customer to click on to return to your site.
GET will do an auto refresh back to your site.
Example:
<input name="ResponseMethod" type="hidden" value="GET">

Restrict Key - RestrictKey
You can configure your Restrict Key in the Processing Settings section of this gateway.
Example:
<input name="RestrictKey" type="hidden" value="your_value">

Area Code - PHONE_AREA
Example:
<input name="PHONE_AREA" type="hidden" value="your_value">

Phone Prefix - PHONE_PREF
Example:
<input name="PHONE_PREF" type="hidden" value="your_value">

Phone Suffix - PHONE_SUFF
Example:
<input name="PHONE_SUFF" type="hidden" value="your_value">

Or

Phone - phone
Example:
<input name="phone" type="hidden" value="your_value">

Company - company
Example:
<input name="company" type="hidden" value="your_value">

CustomerID - cust_id
Example:
<input name="cust_id" type="hidden" value="your_value">

Customer IPaddress - customer_ip
Example:
<input name="customer_ip" type="hidden" value="your_value">

Sales Tax - salesTaxAmount
If you wish to display on the email receipts the amount of tax included in transaction amount.
Example:
<input name="salesTaxAmount" type="hidden" value="your_value">

Invoice Number - invoice_num
Example:
<input name="invoice_num" type="hidden" value="your_value">

Invoice Description - invoice_description
Example:
<input name="invoice_description" type="hidden" value="your_value">

Max Mind Fraud Control - MAXMIND
1 - Use Maxmind default if not sent
2 - Do not use Maxmind

Please note that for XML Processing and Transparent QGWdatabase Engine you must submit customer_ip as well.
Example:
<input name="MAXMIND" type="hidden" value="your_value">

UserVars - UserVar_something
These items are sent with the merchants transaction email.

Example: UserVar_login would get added to email as login: value
Example:
<input name="UserVar_something" type="hidden" value="your_value">

CustomerVars - CustomerVar_something
These items will get sent to the customer along with their receipt.
Example: CustomerVar_login CustomerVar_pass will get sent as
login: value
pass: value
Example:
<input name="CustomerVar_something" type="hidden" value="your_value">

Override Default Email Customer - override_email_customer
Y or N.
If Y an email receipt will be sent to the customer regardless of the Processing Settings.
Example:
<input name="override_email_customer" type="hidden" value="Y">

Override Default Send Transaction Email/Notice - override_trans_email
Y or N.
If Y an email receipt will be sent to the merchant regardless of the Processing Settings.
Example:
<input name="override_trans_email" type="hidden" value="Y">

Form Customization

Company Logo - company_logo
Full URL/path to your company Logo.
Please note that if it is not https then a SSL warning will be displayed.
Example:
<input name="company_logo" type="hidden" value="your_value">

Background Color - bg_color
RGB colors are the hex-based values supported by html. IE C0C0C0 is gray. If background color is not sent the default FFFFFF white will be used.
Example:
<input name="bg_color" type="hidden" value="your_value">

Text Color - txt_color
RGB Color Value
RGB colors are the hex-based values supported by html. IE C0C0C0 is gray. If no text color is sent then Black 000000 will be used.
Example:
<input name="txt_color" type="hidden" value="your_value">

Page Heading - page_heading
If no page heading is sent QuantumGateway will be used.
The Page Heading is the heading you see at the top of your browser bar.
Example:
<input name="page_heading" type="hidden" value="your_value">

Payment Form Header Display - payment_heading
Anything sent in this form field will be shown at the top of the checkout/payment page.
Example:
<input name="payment_heading" type="hidden" value="your_value">

Receipt Header - header_receipt
Anything sent in this form field will be displayed at the top of the receipt page. Right before the order summary.
Example:
<input name="header_receipt" type="hidden" value="your_value">

Receipt Footer - footer_receipt
Anything sent in this form field will be displayed at the very bottom of the receipt page. Right after the order summary.
Example:
<input name="footer_receipt" type="hidden" value="your_value">

Email Header - header_email
Anything sent in this form field will be displayed at the very top of the email receipt to the customer.
Example:
<input name="header_email" type="hidden" value="your_value">

Email Footer - footer_email
Anything sent in this form field will be displayed at the very bottom of the email receipt to the customer.
Example:
<input name="footer_email" type="hidden" value="your_value">

Recurring Information

Recipe ID - RID
Your RID is the number associated with the Recurring Recipe. If you are unsure of the RID click on View Recipes in the Recurring Center. The RID is the first column.
Example:
<input name="RID" type="hidden" value="1">

Initial Amount - initial_amount
if different than recurring
If this field is not present the normal Transaction amount will be used.
Please note this field does the same as override_recur.
Note: This and overirde_recur are the same. Only one of them is needed.
Example:
<input name="initial_amount" type="hidden" value="your_value">

Times To Recur - recur_times
If this field is not present the default recur times will be used per the specs of the above RID
Example:
<input name="recur_times" type="hidden" value="your_value">

Override Default Recur Price - override_recur
If this field is submitted with Y then the recurring amount will be the processed amount.
Example:
<input name="override_recur" type="hidden" value="your_value">

Override Default Recur Day - OverRideRecureDay
You may override the default Recurring day with the current day by submitting this with the value of Y
Example:
<input name="OverRideRecureDay" type="hidden" value="your_value">

Custom Required Fields

Require First Name - Require_FNAME
Send this with the value of Y if you require this item to be filled in.
Example:
<input name="Require_FNAME" type="hidden" value="YES">

Require Last Name - Require_LNAME
Send this with the value of Y if you require this item to be filled in.
Example:
<input name="Require_LNAME" type="hidden" value="YES">

Require Phone Number - Require_phone
Send this with the value of Y if you require this item to be filled in.
Example:
<input name="Require_phone" type="hidden" value="YES">

Require Billing City - Require_BCITY
Send this with the value of Y if you require this item to be filled in.
Example:
<input name="Require_BCITY" type="hidden" value="YES">

Require Billing State - Require_BSTATE
Send this with the value of Y if you require this item to be filled in.
Example:
<input name="Require_BSTATE" type="hidden" value="YES">

Require Billing Country - Require_BCOUNTRY
Send this with the value of Y if you require this item to be filled in.
Example:
<input name="Require_BCOUNTRY" type="hidden" value="YES">

Require CVV2 - Require_CVV2
Send this with the value of Y if you require this item to be filled in.
Example:
<input name="Require_CVV2" type="hidden" value="YES">


Example Form

<form method="Post" action="https://secure.quantumgateway.com/cgi/qgwdbe.php">
<input name="gwlogin" type="hidden" value="your_gateway_login">
<input name="post_return_url_approved" type="hidden" value="http://www.mydomain.com/approved.html">
<input name="post_return_url_declined" type="hidden" value="http://www.mydomain.com/declined.html">
<input name="ID" type="hidden" value="your_database_generatedID">
<!--The ID can be anything you wish. ID, email address, username, etc. Something that will get updated when they click on Finish-->
<input name="amount" type="hidden" value="the_trans_dollar_amount">
<input type="hidden" name="BADDR1" value="your value">
<input type="hidden" name="BZIP1" value="your value">
<input type="hidden" name="BCUST_EMAIL" value="your value">
<input type="hidden" name="bg_color" value="rgb color">
<input type="hidden" name="txt_color" value="rgb color">
<input type="hidden" name="company_logo" value="http://www.mydomain.com/images/company_logo.gif">
<input type ="SUBMIT" value="Submit">
</form>

Please note that you can not usually submit a form to a .htm or .html page.

Sample Post Back Form

<form action ="either accepted or declined url " method="Post">
<input name="ID" type="hidden" value="your_database_generatedID">
<input name="transID" type="hidden" value="transID">
<input name="authCode" type="hidden" value="authCode">
<input name="decline_reason" type="hidden" value="decline_reason"> # If declined
<input name="errorcode" type="hidden" value="errorcode"> # If declined
<input name="trans_result" type="hidden" value="APPROVED">#incase you have one page to handle declines and approvals
<input name="avs_result" type="hidden" value="AVS Response ">
<input name="cvv2_result" type="hidden" value="CVV2 Result ">
<input name="max_score" type="hidden" value="MaxMind Score ">
<input name="md5_hash" type="hidden" value="fdkjh23498fdsh3487hhhhg238746123g">
<input type ="SUBMIT" value="Finish Processing Order">
</FORM>

Sample GET response

https://secure.mydomain.com/approved.php?invoice_num=1234&trans_result=APPROVED&transID=9856321&amount=10.00&cust_id=8675309&
ID=CD10967&md5_hash=fdkjh23498fdsh3487hhhhg238746123g&max_score=0.10&authCode=65318&avs_result=Y&cvv2_result=M&decline_reason=&errorcode=

MD5 Hash

We offer a MD5 hash with the same configuration as Authorize.net.

This hash is an optional security feature. You can enable this from the Processing Settings. This featuer will allow you to verify that QuantumGateway actually sent the transaction response. The hash sent back is comprised of combining the Hash in the Processing Settings, Your Gateway Login, TransactionID and the Amount. This combination is the encrypted using MD5 encryption. In your own software you would generate the hash and compare it to what Quantum sends you.