Support Services

General Product FAQs

How do I calculate UTC time in ticks?

When implementing Forte Checkout, Secure Web Pay, and SOAP web services, a UTC time (in ticks since 01/01/0001 00:00:00A) may be required for authentication.

Forte provides an API, getUTC, which returns the correct UTC time from Forte’s server. Using this server-side value is preferred and prevents inadvertent expiration errors from client PCs that do not have the correct local time set. 

You can use the following PHP/CURL code sample to fetch the UTC time from the getUTC API:


    function utc() {

        $curlUTC = curl_init();

        curl_setopt($curlUTC, CURLOPT_URL, '');

        curl_setopt($curlUTC, CURLOPT_BINARYTRANSFER, true);

        curl_setopt($curlUTC, CURLOPT_RETURNTRANSFER, true);

        //getUTC output example: ?(XXXXXXXXXXXX643793); where: XXXXXXXXXXXX643793 is the UTC time.

        $curlData = (curl_exec($curlUTC));

        $positionOfOpeningParenthesis = stripos($curlData,"(");

        $positionOfClosingParenthesis = stripos($curlData,")");

        $utc =  substr($curlData,$positionOfOpeningParenthesis+1,$positionOfClosingParenthesis-2);

        return $utc;



Alternatively, UTC time in ticks can be computed from seconds using the PHP time() function since 01/01/1970 00:00:00AM UTC. This approach is not suggested for reasons discussed earlier. The following code fragments may be helpful in computing the UTC time.


$time = time() + 62135596800;
'UTC now ticks= echo ' . $time . '0000000';


# generate UTC time stamp since 01/01/0001 in tics
my $time = (time + 62135596800) . "0000000";

How do I request a test account from Forte?

To request a 60-day test account prior to enrollment of your production account for legacy products (i.e., SWP, AGI, SOAP web services, BillPayIt, Forte Checkout v1), please email your sales representative a test account request with the following information:                       

  • Contact Name                        
  • Contact's Title
  • Business Address 1
  • Business Address 2
  • Business City
  • Business State
  • Business Postal Code
  • Business Phone
  • Business Fax
  • Business Email            

NOTE: If you are not currently working with the Forte Sales Team, please email your request to

How can I process a transaction with a duplicate amount?

Upon submitting a transaction with a duplicate amount, Forte returns the following response:

U10:DUPLICATE TRANSACTION - Transaction has the same attributes as another transaction within the time set in the merchant configuration. The default is five minutes but can be disabled or changed upon request.

This issue can be resolved by either of the following methods:

  • Adding an invoice number to the ConsumerOrderID (AGI: ecom_consumerorderid) field
  • Sending different values in a combination of these fields: Merchant ID, Transaction Type, Amount, Consumer Order ID (if present), Credit Card Account Number, or EFT TRN/DDA

How do I reverse a transaction in Virtual Terminal?

Merchants who want to quickly and efficiently reverse transactions can do so using the Virtual Terminal's Reverse button. To do so, complete the following steps:

  1. From the Virtual Terminal home screen, click . The Search Transaction screen displays.
  2. Enter search criteria including reported transaction types (i.e., credit card, echeck, unsettled), date range, and transaction information and click . The search results display.
  3. Scroll through the search results and click on the transaction you want to reverse. The Transaction Detail screen for that transaction displays.
  4. Click . A browser message displays asking you to confirm the reversal.
  5. Click OK to confirm the reversal.                    

Which integrated shopping carts can I use with Forte products?

The following table displays which shopping cart brands Forte supports:

Shopping CartIntegration MethodCredit CardsElectronic Checks

What if my FrankIT printer does not print correctly?

If your FrankIT printer is connected using a serial-to-USB conversion cable, the driver for the converter may have to be downloaded and installed. Visit the manufacturer's website for the latest versions of these drivers.

What do Forte's status codes mean?

See Transaction Codes on Forte's DevDocs page.

What will my reserve/price increase be?

Upon receipt of the signed request and the required documents, our Risk Department will review your merchant account to determine the reserve and/or the per-transaction price increase required. These figures are typically based on the current approved limits as well as the return ratios, including chargebacks and the financial stability of the company.

Why am I receiving merchant timeout errors when trying to send a transaction?

Timeouts generally occur because the entire transaction message is not making it to Forte's servers. Use the following troubleshooting techniques to address timeout errors:


Checking the Sent String                  

Check that the string your application is generating and sending. It should look something like the following:


Note the ampersand at the end of the string. If the message is properly terminated and still times out, check for additional issues.

Wait Time Too Short on the Merchant Side                    

The merchant's system should wait at least 60 seconds for a response. The Forte platform will wait 60 seconds for a response from external vendors (credit card processors, verification services, etc.). During the busiest times, there may be some internal queue time as well, so Forte recommends a 90 second wait time. Through the average processing time is 2–3 seconds, an extended (maximum) timeout period will ensure the merchant loses no transactions in the worst case scenario.


Firewall Blocking at the Merchant's Site                    

This would need to be looked into by the merchant's IT staff. Generally the following ports need to be opened:

Direct Socket Integration

  • Port 6050 and 6051 for Sandbox
  • Port 5050 and 5051 for Production

COM Object, PHP Curl, T-SQL, or the POST Method

  • Port 443

General Connectivity Problems

If the merchant's internet connection is not down, the merchant should be able to browse to other sites from the machine sending the transactions.


DNS Failures                    

DNS failures can be checked with the ping command. The Forte platform does not return PIN packets, but the first thing "ping" will do is attempt to resolve the name via DNS. If it says something like "Pinging <site> [<IP addr>]" then DNS is not a factor. If it hangs, the program cannot resolve the name via DNS, which would indicate a connectivity or DNS issue.

If the merchant's timeouts are not explained by any of the above, more troubleshooting by Forte will be required. For each timed-out transaction (up to a maximum of ten), please submit the following information:

  • Originating IP address (see
  • Merchant ID
  • Time of submission
  • Name, Amount, and ecom_consumerorderid
  • Exact networking error reported by the operating system (if known)
  • Amount of time the merchant waited before timeout                    

How do I use the libcurl 7.14.0 module included with the PHP v5.0.5 (IIS Configuration)?

Complete the following steps:

  1. Download the "PHP 5.0.5 zip package" and collection of PECL modules for PHP 5.0.5 from
  2. Extract the contents of into a folder. From this point forward, this will be referred to as the installation directory (e.g., C:\Program Files\PHP)
  3. Extract the contents of the into the "ext" folder of the installation directory. 
  4. Configure the IIS Application Mappings to include php and .php3 extenstions call C:\Program Files\PHP\php-win.exe.
  5. From the installation directory, copy php.ini-recommended to php.iniand modify it as follows:
    • extension_dir=./ext
    • cgi.forc_redirect=0
    • extension=php_curl.dll
  6. Install or update a CA certificate bundle as detailed on the official cURL website:
  7. Include the following in the cURL code of php_curl.php between ob_start() {}:
    • curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); // verifying the peer's certificate is completely optional.

    • curl_setopt($ch, CURLOPT_CAINFO, 'c:\php\ca-bundle.crt'); // specificy path to ca-bundle.crt in 3rd parameter.

NOTE: Messages delivered securely to Forte use SSL v3 and/or TLS v1.0 protocols.

Below is an example response:

pg_response_description=INVALID PASSWD 
pg_trace_number=76D30BF7-C574-4F9A-AA65-7DF9E58FA0B0 pg_merchant_id=2000 
* About to connect() to port 443 * Trying * connected * Connected to ( port 443 * successfully set certificate verify locations: * CAfile: c:\php\ca-bundle.crt CApath: none * SSL connection using RC4-MD5 * Server certificate: * subject: /C=US/ST=California/L=Palm Springs/O=ACH Direct, Inc./OU=Terms of use at of use at (c)05/ * start date: 2007-01-09 00:00:00 GMT * expire date: 2008-02-06 23:59:59 GMT * common name: (matched) * issuer: /O=VeriSign Trust Network/OU=VeriSign, Inc./OU=VeriSign International Server CA - Class 3/ Ref. LIABILITY LTD.(c)97 VeriSign * SSL certificate verify ok. > POST /cgi-bin/ HTTP/1.1 Host: Accept: */* Content-Length: 307 Content-Type: application/x-www-form-urlencoded pg_merchant_id=2000&amp;pg_password=password&amp;pg_transa ction_type=13&amp;pg_total_amount=110.00&amp;ecom_billto_p ostal_name_first=John&amp;ecom_billto_postal_name_last =Smith&amp;ecom_payment_card_type=VISA&amp;ecom_payment_ca rd_number=4111111111111111&amp;ecom_payment_card_expda te_month=12&amp;ecom_payment_card_expdate_year=2020&amp;en dofdata< HTTP/1.1 200 OK < Date: Wed, 26 Sep 2007 21:29:00 GMT < Server: Apache/2.2.3 (Debian) mod_ssl/2.2.3 OpenSSL/0.9.8c mod_perl/2.0.2 Perl/v5.8.8 < Transfer-Encoding: chunked < Content-Type: text/html; charset=UTF-8 < Set-Cookie: BIGipServerCGIPost=687999498.47873.0000; path=/ * Connection #0 to host left intact * Closing connection #0

Will Forte process ACH and credit card payments for my type of business?

Forte loves working with a variety of merchants; however, we cannot process payments for businesses on our Prohibited Merchant list. We derive this list both from our banking partners and our own experience with losses in certain industries. The list below displays the types of businesses that Forte will not work with regardless of their use of services (e.g., payroll, service fees, etc.). If you have additional questions about this list, contact Forte Sales

Prohibited Merchant List

  • Greater than 36% APR on Consumer or Business Loans

  • 30-Day Trial Membership Offer with Recurring Billing After Trial
  • Adult-Related Businesses
  • Advanced Fee Credit Cards
  • Any Business Engaging in Illegal Activities
  • Any Business with an “F” Better Business Bureau Rating
  • Bitcoin Currency
  • Check Cashing
  • Debt Consolidation/Debt Management Programs/Credit Repair
  • Discount Medical Benefits
  • Early Termination Fees over $500.00
  • Foreclosure Work-Outs/Defense
  • Forensic Loan Audit
  • Fantasy Sports
  • Foreign Financial Institutions
  • Foreign/Off-Shore Business (Only US and Canadian businesses allowed)
  • Gambling Establishments and Associated Businesses and Websites
  • ID Theft Protection
  • Illegal Internet Gambling
  • Import/Export Brokers or Intermediaries
  • Individuals (i.e., not a business, agency, or organization)
  • Investment Management/Hedge Funds Management
  • Jewelry/Metals and Precious Gem Sales
  • Loan Modification/Consulting
  • Lottery
  • Medical Discount Benefits Package
  • Medical Marijuana Providers/Advocates
  • Money Service/Transmitter Businesses
  • Online Tobacco Sales, including Electronic Cigarettes
  • Outbound Telemarketing
  • Pawn Shops
  • Payday Loan (Only ATM Verify allowed)
  • Products with Unreasonable Guarantee
  • Securities and Commodities
  • Telemarketing
  • Timeshares
  • Travel Industries

I'm trying to log into Virtual Terminal, but all I see is a spinning circle. How can I fix this?

To resolve a perpetual spinner when accessing the Virtual Terminal in Internet Explorer, enable the ActiveX Filtering option under the Tools menu by clicking on it. When enabled, IE displays a check mark next to the option (see the figure below). Alternatively, you can attempt to log in from another browser, such as Google Chrome.


When using Modzilla Firefox:

Go to 3 horizontal bars (top-right corner) > Add-Ons > Plugins where he found “Shockwave Flash” plugin at the bottom of the list. Instead of “Ask to Activate” we changed it to “Always Activate”.

How do I enable Compatibility Mode for Internet Explorer?

To enable Compatibility Mode, complete the following steps:

  1. Access the Compatibility View Settings window from the Tools menu in Internet Explorer.
  2. Type the Virtual Terminal URL in the Add this website field if it is not automatically listed and click .
  3. Click .

How do I log into Virtual Terminal using the Microsoft Edge browser?

Currently, Microsoft Edge does not support the scripting requirements of Virtual Terminal and requires the user to revert back to Internet Explorer 11 and turn on compatibility mode. A message displays indicating when the user should do this:

To revert to Internet Explorer 11 and turn on compatibility mode, complete the following steps:

  1. Go to the MS Edge Internet Options menu and select Open with Internet Explorer.
  2. From the Internet Explorer 11 Tools menu, access the Compatibility View Settings window.
  3. Type the Virtual Terminal URL in the Add this website field if it is not automatically listed and click .
  4. Click .

How do I Simulate Settlement in the Sandbox Environment?

This solution describes settlement simulation options in the sandbox environment.

Credit Cards

Submit test transactions to the sandbox environment for any amount. The end result is that this transaction's status will be updated to reflect 'settled'.

Edge case testing:

  • a whole amount with .99 will yield an additional 'Chargeback' settlement record. 
  • a whole amount with .98 will yield additional 'Chareback' and 'Un-Chargeback' settlement records.


Submit test transactions to the sandbox environment for any whole dollar amount. The end result is that this transaction's status will be updated to reflect "Funded" on the first settlement attempt.

Edge case testing, two general cases:

Case I.

  • a whole amount with .01 will yield the transaction status to be updated to reflect 'Rejected' with an ACH return reason code of R01.
  • a whole amount with .02 will yield the transaction status to be updated to reflect 'Rejected' with an ACH return reason code of R02.
  • ...etc, etc... for return reason codes R03 through R97
  • a whole amount with .98 will yield the transaction status to be updated to reflect 'Rejected' with an ACH return reason code of R98.
  • a whole amount with .99 will yield the transaction status to be updated to reflect 'Rejected' with an ACH return reason code of R99.

Case II. 

  • a whole amount with .10 will yield the transaction status to be updated to reflect 'UnFunded' with an ACH return reason code of R10.
  • a whole amount with .23 will yield the transaction status to be updated to reflect 'UnFunded' with an ACH return reason code of R23.

Upon submission of test transactions to the sandbox environment, email and request* settlement simulation with the following details:

  • Merchant ID
  • Test transaction processing date* 

*Limit one simulation request per day after submission of all test transactions.

Upon our receipt, settlement will be simulated in the sandbox environment. The support agent will reply with appropriate settlement dates and results.

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.