Gateway Emulator
Third Party Shopping Carts

We have designed our gateway to be able to handle transaction submissions and responses in the Authorize.Net format. We call this our Gateway Emulator.

To use the Gateway Emulator, your shopping cart or application must support the Authorize.Net AIM or SIM method of integration. If the application supports the AIM or SIM method, you simply need to change the transaction POST URL to our Gateway Emulator URL.

The Gateway does not support the emulation of XML AIM, CIM, ARB, DPM, Card Present or Transaction Details APIs.

Our Gateway Emulator URL is:

AIM: https://integratepayments.transactiongateway.com/gateway/transact.dll
SIM: https://integratepayments.transactiongateway.com/cart/ausi.php

You will need to change any production and test Authorize.Net URLs to one of the above URLs. The following URLs should be replaced:

https://secure.authorize.net/gateway/transact.dll
https://test.authorize.net/gateway/transact.dll

Some applications will not contain the test URL. In that case, you will only be changing one URL. Once you have updated the URLs to point to us, the application will submit transactions without needing changes to the code base.

You will then need to configure the Authorize.Net AIM or SIM payment module with the following credentials:

  • API ID or Login ID is your gateway username.
  • Transaction Key is your gateway password.
  • The MD5 Hash is the word "gateway" without the marks.

For testing, you can use the username and password of "demo" and "password".

CIT/MIT is supported even though the official AIM API does not support it. Please use the variable names and values documented under the Direct Post API on all relevant transactions.


Authorize.Net Modern XML Emulator

If your application is using Authorize.Net's current XML API, then you can connect using our newest emulator. Like the above-mentioned emulators, this will accept requests in the same XML format that Auth.Net would accept, so it's just a matter of changing your POST URL to the one below and using your gateway credentials for authentication. This emulator also emulates the response so that should look the same to your software.

Our Modern XML Emulator URL is:

https://integratepayments.transactiongateway.com/api/transrequest.php

For authentication, this API looks for "name" and "transactionKey".

  • "name" can be anything, as it is not used for authentication.
  • "transactionKey" is your API Security Key.

Sparrow

If your application is using SparrowOne's Services API, you can connect your software to the gateway via this emulator. Simply replace the POST URL in your software to the following address and you can submit transactions, add update, and delete Customer Vault IDs, and create recurring subscriptions.

https://integratepayments.transactiongateway.com/api/spar.php

Authentication uses your merchant account's API Security Key in the 'mkey' variable.

Shopping Cart List
Third Party Shopping Carts

Many shopping cart integrations request a username and password for authentication. While these currently work, we recommend instead using an API security key for authentication. Create a key with "API" permissions in the merchant control panel and use it in your cart/software configuration. Administrative users can log in and set that up now.

In your software:

  • Set the "username" value to "api_key"
  • Set the "password" field to your security key

Transactions will process correctly and will appear in your reporting as run by the user associated with your API security key.


Wordpress Plugins
Third Party Shopping Carts

Many shopping cart integrations request a username and password for authentication. While these currently work, we recommend instead using an API security key for authentication. Create a key with "API" permissions in the merchant control panel and use it in your cart/software configuration. Administrative users can log in and set that up now.

In your software:

  • Set the "username" value to "api_key"
  • Set the "password" field to your security key

Transactions will process correctly and will appear in your reporting as run by the user associated with your API security key.


Drupal Plugins
Third Party Shopping Carts

Many shopping cart integrations request a username and password for authentication. While these currently work, we recommend instead using an API security key for authentication. Create a key with "API" permissions in the merchant control panel and use it in your cart/software configuration. Administrative users can log in and set that up now.

In your software:

  • Set the "username" value to "api_key"
  • Set the "password" field to your security key

Transactions will process correctly and will appear in your reporting as run by the user associated with your API security key.


Joomla Plugins
Third Party Shopping Carts

Many shopping cart integrations request a username and password for authentication. While these currently work, we recommend instead using an API security key for authentication. Create a key with "API" permissions in the merchant control panel and use it in your cart/software configuration. Administrative users can log in and set that up now.

In your software:

  • Set the "username" value to "api_key"
  • Set the "password" field to your security key

Transactions will process correctly and will appear in your reporting as run by the user associated with your API security key.


1AutomationWiz provides an easy to use "Buy It" button based 'all in one' shopping cart software, and combines it with the power of an integrated marketing automation system. With 1AutomationWiz, there's no heavy lifting, outrageous set up fee or huge learning curve.

1AutomationWiz has built-in support for our system.

1ShoppingCart.com is a complete online shopping cart software solution designed to help you start selling and keep growing. 1ShoppingCart.com incorporates all of the tools your business needs to sell online in a single, easy-to-use web-based eCommerce solution.

1ShoppingCart.com has built-in support for our system. Click on the link below to get more information about their product.

Whether you are a startup company, a small business, or a large corporation, 3dCart has a store solution for you. Each of our solutions includes toll free support, training manuals, and free consultation with an e-commerce and marketing expert to help you setup your online store.

3DCart has built-in support for our system. Click on the link below to get more information about their product.

800 Cart has built-in support for our system. Click on the link below to get more information about their product.

AShop is the oldest still active open source shopping cart. It has been around since 2000 and has had plenty of time to grow and evolve. We are dedicated to our mission, which is to develop timely and cost effective tools for running online businesses.

AShop Software has built-in support for our system. Click on the link below for more details.

AbanteCart is a free PHP based eCommerce solution for merchants to provide ability creating online business and sell products online quick and efficient. AbanteCart application is built and supported by experienced enthusiasts that are passionate about their work and contribution to rapidly evolving eCommerce industry. AbanteCart is more than just a shopping cart, it is rapidly growing eCommerce platform with many benefits.

Abente Cart uses the gateway emulator to connect to the payment gateway.

Enterprise level, Insurance-based hosted solution perfect for managing documents, workflow solutions, and simple integration for any sized company.

ACROSOFT connects to us through our Gateway Emulator.

AgoraCart is one of the early open source ecommerce shopping cart software solutions offering small businesses and online retailers more flexibility, power, and customization on a larger scale. AgoraCart can be easily installed on your existing website or it can be hosted for you. Built as an Open Source Software (OSS) using Perl, our ecommerce shopping cart software is community driven in its design and development, which keeps the focus on the merchant needs.

AgoraCart integrates using the Gateway Emulator AIM Method.

Accept subscription payments, manage customer profiles, deliver digital content, integrate with your blog, forum, or CMS, send opt-in newsletters, run your own affiliate program everything is easy with aMember Pro.

aMember Pro has built-in support for our system.

Americart is one of the most robust and well-tested shopping carts on the Web. Since 1996, Americart has provided reliable and economical shopping cart services to tens of thousands of online merchants.

Americart has built-in support for our system. Click on the link below to get more information about their product.

Industry leading software to manage and sell WiFi HotSpot access. We have easy setup with any hardware and live support.

AntaMedia integrates to the payment gateway directly.

WorqSmart has developed an add-on module for Apple's FileMaker Pro that adds support for our system. Click on the link below to obtain more information about the integration module.

ASecureCart is a feature rich shopping cart service that allows you to sell products and services from your web pages affordably, with no software to download and no programming knowledge.

aSecureCart has built-in support for our system. Click on the link below to get more information about their product.

Whether you're new to ecommerce or a seasoned professional, Ashop ecommerce shopping cart software is easy, flexible and feature rich so your online business can grow without limits.

Ashop Commerce has built-in support for our system. Click on the link below to get more information about their product.

AspDotNetStorefront, in all its fullness, has everything you will ever need. Platform, partners, plug-ins. With built-in SEO, promotion and marketing tools, and the flexibility and stability of the .NET platform, AspDotNetStorefront is the only shopping cart your business can't outgrow.

AspDotNetStorefront connects to us through our Gateway Emulator. Click on the link below for more details.

Avactis PHP Shopping Cart is a new-generation online store software. Top Features: customizable to any design with no programming skills; easy integration with an existing website through a unique tag-based technology.

Avactis has built-in support for our system. Click on the link below to get more information about their product.

Bigcommerce is a complete content management system that lets you build and manage your entire website. Along with a powerful product catalog and e-commerce functionality, you get the ability to easily create web pages, contact forms, banners and more.

Big Commerce has built-in support for our system. In order to use this integration, please contact your Merchant Service Provider and ask them to set your account to 'allow merchant override' in the processor setup.

Bill & Pay handles payments from your customers in a variety of ways. It also allows you to directly enter payments on your customer's behalf.

Bill & Pay has built-in support for our system. Click on the link below to get more information about their product.

Create a blog. It's free.

Blogger is a blogging platform that can be integrated with the gateway using QuickClick.

Bookeo is the easiest, most comprehensive online booking system. Bookeo is already used in over 50 countries, and every minute, somewhere, someone is making a new booking.

Bookeo has a direct integration to the payment gateway.

CanadaCart.ca has been helping Canadian and international companies to enter the e-marketplace with our shopping cart and store builder eCommerce solutions since 1998. CanadaCart.ca continues to be Canada's first and best unlimited shopping cart solution. Our focus is on continuing to deliver a solid, sustainable shopping cart system specific to Canadians.

Canada Cart has the payment gateway directly integrated.

Cart66 is a WordPress Ecommerce Plugin that makes selling as simple as placing a product on any page or post on your WordPress website.

Cart 66 connects to us through our Gateway Emulator. Click on the link below for more details.

Our shopping cart software is database driven with import and export capability, secure server enabled, and customizable with the ability to easily create a template for itself from any page on your web site.

Cart 7 Technologies has built-in support for our system. Click on the link below to get more information about their product.

Cart32 is an online shopping cart solution that fits all your website needs. This includes Website Hosting, Shopping Cart Hosting, Payment Gateway, and Merchant Services. With the user friendly control panel, you can get your shopping cart set up in under an hour! If you have any issues, Cart32 offers 24/7 Tech Support.

Cart32 connects to us through our Gateway Emulator.

Add an advanced checkout system to your website with integrated upsells, recurring billing, and abandoned cart recovery.

Cartfunnel has built-in support for our system. Click on the link below to get more information about their product.

Used by thousands of merchants all over the world; CartManager has been providing easy to use, secure, online shopping cart solutions since 1998.

CartManager has built-in support for our system. Click on the link below to get more information about their product.

CartVille.com has helped thousands of successful Web businesses like yours take the guesswork out of capturing more online orders quickly and easily. And unlike other systems, this complete shopping cart solution does not require any additional software, order forms, or database programs. You will be able to set up your cart in just minutes, and then view your new orders securely, online from anywhere in the world, 24 hours a day!

CARTVILLE.COM has built-in support for our system.

With just a few clicks you'll have a full featured shopping cart installed, including the store pages, the database and a robust web-based administration area, ready to log in and start configuring your eCommerce options. With Cartweaver 4 PHP or ColdFusion or Railo (open source CFML), you are just minutes away from adding a full featured store to your web site!

CartWeaver integrates using the Gateway Emulator AIM Method.

The ChamberMaster Member Management Software is powerful, easy-to-use and designed to manage all the day-to-day operations of your organization. Thousands of people in chambers, business and trade associations, and convention and visitors bureaus (CVBs) trust ChamberMaster to manage their most important information and help promote and grow the communities they serve.

CHAMBER MASTER connects to us through our Gateway Emulator.

Checkfront is an cloud-based online booking system that snaps right into your existing website. It includes a built-in payment processing platform enabling you take online credit card payments. Checkfront shows your bookings and availability in real-time, even managing your equipment inventory.

Checkfront has a basic integration with the payment gateway.

CiviCRM is a web-based, open source, Constituent Relationship Management (CRM) software geared toward meeting the needs of non-profit and other civic-sector organizations.

CiviCRM connects to us through our Gateway Emulator. Click on the link below for more details.

CMS made for Marketing but build for Geeks. Concrete5 is a content management system that is free and open source.

Concrete CMS uses the gateway emulator to connect with the payment gateway.

Contact Your Client Ultimate is an all-inclusive Windows-based CRM Contact Management Software with integrated Marketing, Telemarketing, Prospecting, SEO, Invoicing, Emailing, E-Commerce and Financial Charging capabilities all under one roof.

Has built in support for the payment gateway, may support recurring building.

CoreCommerce is the full-service shopping cart solution that makes it easy for you to sell online. Choose from over 250+ hand-crafted, professionally made themes for your store to get that look that's just right.

CoreCommerce has built-in support for our system. Click on the link below to get more information about their product.

Chain Reaction Ecommerce, Inc. (CRE) is a leading provider of open source ecommerce software and services for merchants, and a steward of the CRE ecommerce ecosystem. The CRE Loaded product family is supported by a growing open source community - CRE Share - of more than 12,000 developers, designers, Web hosting providers, online merchants, Internet retailers and business partners. CRE Share provides a unique environment for merchants to access a wide variety of resources designed to help them succeed with their online stores, and to share their experiences, success and lessons learned with other online merchants. Through its CRE Lance network of ecommerce design, development and programming experts, CRE provides customers with access to expert resources to create and manage their online stores.

Filename: cre_loaded-v6.5.x_Install.zip

This payment module adds support using the Three Step Redirect integration, which keeps merchants and their environment outside the scope of transmitting sensitive payment information.

The most comprehensive Credit Repair Software under the sun.

Credit Money Machine is directly integrated with the payment gateway.

Cresecure, powered by PCI-Compliance provider ControlScan, offers secure, PCI Compliant payment modules for open-source Shopping Carts including Magento, osCommerce, ZenCart, Loaded Commerce, Wild Apricot and more.

CRESECURE has built-in support for our system.

CS-Cart is a standalone web application for building and managing an ecommerce website of any size from a small web store to a virtual shopping mall with multiple departments and product suppliers.

CS-Cart connects to us through our Gateway Emulator. Click on the link below for more details.

Filename: cubecart-v3.x_nmi_gateway_services.zip

This module adds support for our system to CubeCart v3.x.x.

Filename: cubecart-v4.x_nmi_gateway_services.zip

This module adds support for our system to CubeCart v4.x.x.

Formerly known as Curdbee, Hiveage offers impressive online billing, invoicing, time tracking and subscription/recurring capabilities for freelancers and small businesses.

Hiveage connects to us through our Gateway Emulator.

Cydec has built-in support for our system. Click on the link below to get more information about their product.

DesignCart has provided the easiest to use, most secure, online shopping carts for thousands of small and medium sized businesses. As a third-party hosted online shopping cart, DesignCart is perfect for a small to mid-size businesses that wish to sell their products on the web and reflect a "big business" presence. Our online shopping carts offer you a practical, quick, user-friendly and developer-friendly environment. Setting up our shopping cart software is fast, easy and you don't have to be an expert to do it.

DesignCart is directly integrated into the payment gateway using our direct post api.

Drupal Commerce is an open source eCommerce framework. Use it to build truly flexible eCommerce websites and applications based on Drupal, the best platform for social commerce.

DrupalCommerce uses the AIM method of the Gateway Emulator.

DudaMobile can be used to build a mobile website using most of our integrated shopping carts. DudaMobile will build a mobile website based on your existing website to make it mobile device friendly. If you have a payment method integrated into that website, it will transfer over nicely in most cases. If no website exists, QuickClick can be used, though it is not responsive.

The QuickClick Shopping Cart can be used to integrate dudamobile with the payment gateway.

ProductCart is the result of this effort. Among the very best ecommerce software you can find, it's successfully powering thousands of Internet stores. It contains hundreds of smart features, optimized over time based on constant feedback from companies just like yours. Over 11 years of continuous development really comes down to this: ProductCart is ecommerce software that simply makes sense.

Early Impact has built in support for our gateway, which does support recurring billing. However, it does not use the gateway's recurring system.

EasyCart, built by LevelFour StoreFront, is the top WordPress Shopping Cart software that allows you to plugin e-Commerce into your WordPress website with only a few clicks.  All the features you need to sell physical goods, digital products, gift cards, and more all from your website.

EasyCart connects to us through our Gateway Emulator.

storeBlox CS is the most affordable solution for custom company store programs. No extra charge for spectacular support and customer service.

eBlox storeBlox CS has a direct integration with the payment gateway.

Ecommerce Templates is a shopping cart system written in both ASP and PHP.

Filename: ecomtemp.zip

This adds Network Merchants support for the PHP version of Ecommerce Templates. Installation instructions are included in this package.

Ecommerce Templates can connect to the Gateway via the Gateway Emulator, AIM method. This is supported via ASP and PHP versions of Ecommerce Templates.

Ecwid is qualiteam's attempt to bring an entirely new approach to creating an online store: SaaS-based, compatible with your existing site, hassle-free and lightning-fast.

Ecwid has built-in support for our system. Click on the link below to get more information about their product.

Management software for Security Businesses.

Engarde is directly integrated with the payment gateway.

eShop is an accessible shopping cart plugin for WordPress, packed with various features including customer login, various payment methods, downloadable/digital products, various shipping methods and more.

The eShop plugin connects to the payment gateway using the SIM method of the gateway emulator.

eStore Advanced connects to us through our Gateway Emulator. Click on the link below for more details.

EventEspresso is a powerful Event Registration plugin for WordPress that supports customizable event page designs, multi-ticket and pricing options, a Venue manager and much, much more.

The Event Espresso plugin connects to the payment gateway using the AIM method of the gateway emulator.

The most popular Events Management plugin for WordPress. Quickly and easily create events, accept bookings, and manage attendees with one plugin. A regularly maintained plugin with a Pro add-on for additional support and features

This plugin uses the AIM method of the gateway emulator in order to connect to the payment gateway.

EZregister makes online event registration easy. After just a few simple online forms, your event is set up and ready to promote!

EZ REGISTER connects to us through our Gateway Emulator.

Finalsite is web software and services designed for schools. The platform's many different components make it scalable and flexible. Finalsite's interactive solution builder lets you pick the parts of the platform that fits your school's unique needs.

Finalsite has built-in support for our system.

Fishbowl is the most popular manufacturing and warehouse management solution among Quickbooks users. It's also a great standalone tool for organizations looking to track assets.

FISHBOWL INVENTORY connects to us through our Gateway Emulator.

FormSite.com connects to us through our Gateway Emulator. Click on the link below for more details.

FoxyCart is fast and easy to get started with. All that's required is basic HTML knowledge to create a link or a form. Even if you've never created an e-commerce site before, FoxyCart will allow you to implement a custom e-commerce solution without banging your head against your desk.

FoxyCart has built-in support for our system. Click on the link below to get more information about their product.

The FSM .NET Marina Management System is the most advanced and capable marina management software available. It’s reliable, fast, flexible, comprehensive, and quickly understood and mastered.

FSM MARINA MGMT has built-in support for our system.

GlobeKey is a commerce package aimed at hotel operators and is intended to ease the process of managing reservations.

Support for our system is built into GlobeKey. Click on the link below for more information.

GoECart's comprehensive technology solutions offer the ultimate in reliability, scalability, and flexibility demanded by the world's busiest ecommerce sites. And our value-added professional services and turn-key implementation programs ensure speed to market while keeping our clients at the forefront of ecommerce.

GoECart connects to us through our Gateway Emulator. Click on the link below for more details.

Gravity Forms is hands down the best contact form plugin for WordPress powered websites. Oh yeah, we said it!

GRAVITY FORMS connects to us through our Gateway Emulator.

GuestPoint is a powerful and easy to use Property Management System designed specifically for small and medium-sized independent accomodation properties including hotels, motels, inns, spas, resorts, hostels, mini-camps and and B&Bs.

GUESTPOINT has built-in support for our system.

HikaShop is a Joomla Extension that enables you to manage your shop's content (categories, products, etc), handle advanced prices management, heavily personalize your store by providing an easy interface to customize all the HikaShop views. You can also easily manage custom fields for users, their addresses and products, manage an affiliate program, easily handle the translation of the shop's content in multiple languages, show statistics and so much more...

Hikashop can be integrated using the AIM or SIM method of the gateway emulator.

Hosted PCI was founded in 2009 to solve a very specific industry problem. Having seen firsthand how difficult the task of PCI DSS compliance was in countless e-commerce engagements, we set out to create a system that would help solve the problem across the entire industry. In March 2010 Hosted PCI launched its first service for e-commerce merchants Hosted PCI Checkout Express Edition. This service allowed e-commerce merchants, for the first time, to have full control of their checkout pages. True PCI DSS compliance without sacrificing the consumer experience!

Hosted PCI has built-in support for our system. Click on the link below to get more information about their product.

Design, Manage and Market your website today!! Everything you need to succeed online: Designs, SEO, Web Hosting, Multimedia, Emails, Credit Card Processing, Online Commerce Tools, Social Media & more. Take control of your website using our quick and convenient power-packed platform. Get your own website instantly, there's no commitments, nothing to download, no coding to learn, try it absolutely risk free for ten days.

iBuilt.net has built-in support for our system.

The Ignite Builder lets you create a fully customizable website quickly and easily. Armed with the input and suggestions of thousands of our students, we set out to launch a website builder that meets the demands of today's online entrepreneurs; a builder that lets you build a website the way you want with an interface that makes it fun and the features that you expect.

Ignite supports the payment gateway through the gateway emulator.

e-Store Hosting: Ready to use shopping cart and no programmer required. Our shopping cart software is designed with the small business person in mind. It's affordable and easy to use, yet very powerful.

The payment gateway is directly integrated into the iHost e-Store solution.

Create a website -- simple & elegant (and it's free)

ImCreator can be integrated with the gateway using the QuickClick Shopping Cart.

IMS Voyager is a Reservation, Ticketing and Booking System specifically for Ferry, Bus/Train, Aircraft Reservations, and Tour OND Systems. Our system provides realtime passenger reservations, freight, ticketing and departure control solutions!

Inflatable Office is the most advanced rental management software on the market! Our suite includes quoting and booking, contracts, alerts, double-booking prevention, surveys, testimonials, QuickBooks, Facebook integrations, Taxing, Analytics, Loading/routing of Trucks, and much, much more!

INFLATABLE OFFICE connects to us through our Gateway Emulator.

Infusionsoft is the only all-in-one sales and marketing automation software for small businesses that combines CRM, email marketing and e-commerce.

Infusionsoft has built-in support for our system. Click on the link below to get more information about their product.

InnerFence is a mobile and desktop based terminal solution for iPhone, iPad, Android, Mac and Windows platforms. **Note: NMI cannot provide swipe support for this Software.

INNERFENCE has built-in support for our system.

irsLogics is the best cloud-based tax resolution and management software available today. Prioritize, manage and document your work easily and effectively. Features include Online payments, Federal and State Forms, Lead/Pipeline Management, Phone/Call center, Fax Services, and email client support.

IRSLOGICS has built-in support for our system.

iVenue delivers cutting edge web-based tools and services that enable business owners and entrepreneurs to become webmasters with absolutely no programming knowledge. Our proprietary website construction technology can put you in business in minutes.

IVENUE.COM connects to us through our Gateway Emulator.

Jigoshop is an eCommerce plugin for WordPress developed by professionals with years of experience delivering online shops for global brands.

JigoShop is directly integrated with the payment gateway.

JigoShop can also use the gateway emulator to integrate with the payment gateway.

Full-featured CMS with e-commerce, intranet, social networking, online marketing tools & more.

Kentico CMS connects to us through our Gateway Emulator. Click on the link below for more details.

King Cart has built-in support for our system. Click on the link below to get more information about their product.

At LeashTime, we know that you have your hands full managing pooches and their people. Let LeashTime make scheduling, key management and invoicing a breeze, so you can focus on the important things.

LeashTime has built-in support for our system. Click on the link below to get more information about their product.

LemonStand is a powerful PHP eCommerce platform that's flexible and developer friendly in every way. Full of amazing features, an easy to use interface, strong developer community plus a Marketplace to purchase and sell add-ons.

Lemonstand supports the payment gateway through the gateway emulator.

Easy, affordable and just a little bit fun. That's what we want life to be like for you when you use LightWave. Having a Website offers a unique opportunity to be creative and experiment a little ... to make a big impression without exerting a lot of time or money. After all, you can change a Webpage in a lot less time and for a lot less money than you can update a brochure or sign.

Livewave by Thrive has built-in support for our system.

LimeLight CRM has built-in support for our system. Click on the link below to get more information about their product.

Limo Anywhere is a complete limousine reservation management software for small to mid-size transportation companies.

Limo Anywhere has built-in support for our system. Click on the link below for more details on configuring Network Merchants within Limo Anywhere.

The LinkPointCart allows e-businesses to transform any Web Site into a secure shopping environment without extensive effort, complicated programming, or high-cost support.

LINKPOINT CART has built-in support for our system.

MA WebCenters is an innovative Internet marketing company specializing in business Web site design, eCommerce and hosting services. The company provides businesses of all kinds with an easy and affordable way to launch and maintain a presence in the ever-important marketplace of the Internet.

Uses the gateway emulator to connect to the payment gateway. AUTH/CAPTURE must be used to make transactions.

Magento is the eCommerce software platform for growth that promises to revolutionize the industry. Its modular architecture and unprecedented flexibility means your business is no longer constrained by your eCommerce platform. Magento is total control

Filename: magento-v1.7.x_Install.zip

This payment module adds support using the Three Step Redirect integration, which keeps merchants and their environment outside the scope of transmitting sensitive payment information. The Gateway Module is not supported on Magento installs of version 8.0 and up.

PatSaTECH offers a third-party plugin for Magento to connect to the payment gateway.

We make it simple to add a shopping cart to your website. Escape from the limitations of traditional store builder software, just add Buy Now buttons to your existing product pages and start taking orders straight away.

Mal's e-commerce has built-in support for our system. Click on the link below to get more information about their product.

MarketersChoice is the world's most referred ecommerce solution offering affordable and easy to use packages!

MarketersChoice has built-in support for our system. Click on the link below to get more information about their product.

MARKETPRESS ECOMMERCE is the easiest to use, best designed and most powerful ecommerce / shopping cart plugin available for WordPress today. Developed from the ground up to make it simple to set up a stylish online shop, MarketPress has all the features you need.

MarketPress integrates to the payment gateway using the gateway emulator.

Finally, a comprehensive Martial Arts Management system that is elegant to look at and easy to use. Note: This software solution requires the Customer Vault tokenization system.

MARTIAL ARTS ADMIN has built-in support for our system.

Manage contacts and leads. Track phone calls, emails and tasks. Improve customer service and close more deals. Quickbooks Plugin.

Method CRM can be integrated with the payment gateway by using the gateway emulator.

Microsoft Dynamics NAV (formerly Navision) is designed for diverse manufacturers, distributors and services businesses wanting a proven, secure solution with the flexibility to accommodate new business processes and extend functionality quickly as their businesses grow and change. Microsoft Dynamics NAV is one of the most widely used ERP solutions in the world.

Microsoft Dynamics NAV uses a third party module called SIMCREST for integrating with the payment gateway.

Mijireh Checkout is your PCI compliant checkout page that looks exactly like your site – your code secured on our servers. Our page slurp technology makes it as easy as one click. Avoid the hassle and expense of security scans, SSL certificates, and all the other issues concerning PCI compliance. Let us handle PCI compliance so you can focus on your business.

MIJIREH has built-in support for our system.

MijoShop: The leading e-Commerce application for Joomla! MijoShop is a powerful shopping cart component that is designed feature rich and user friendly. It is a turn-key ready "out of the box" shopping cart and e-Commerce component for Joomla. It has an intuitive admin interface that allows you to have complete control over your store and detailed sales reports.

MIJOSOFT connects to us through our Gateway Emulator.

ModernBill, is one of the best ready-to-use application to automate the process of managing and billing web hosting accounts.

ModernBill is directly integrated with the payment gateway.

eCommerce Shopping cart software for every kind of product: shipped goods, digital delivery and subscription services.

Modular Merchant is directly integrated with the payment gateway.

MonsterCommerce shopping cart software allows you to easily build an online store from any web browser!

MonsterCommerce has built-in support for our system. Click on the link below to get more information about their product.

NetIDNow offers a variety of website building tools, including an online store builder.

NetIDNow's ecommerce solutions support our system. Click on the link below to get more information on their ecommerce offerings.

Thousands of online store merchants trust their vital ecommerce operations to Network Solutions. Why? Because we deliver integrated, customizable web-based online shopping cart solutions for companies of all sizes, on an easy-to-learn and manage Web-based platform.

Network Solutions has built-in support for our system. Click on the link below for more details.

Netz Internet Solutions offer a variety of web products and services, including an online cart service.

NetzCart is an ecommerce product that can support our system.

Software developers for nearly every Fortune 500 and Global 2000 company worldwide use /n software's products to build powerful connected applications.

nSofware is directly integrated with the payment gateway.

Use ONTRAPORT's full ecommerce suite to sell your products online, manage payments and store customer order history, all in one system.

ONTRAPORT has built-in support for our system. Click on the link below to get more information about their product.

A free shopping cart system. OpenCart is an open source PHP-based online e-commerce solution.

OpenCart connects to us through our Gateway Emulator. Click on the link below for more details.

PledgedPlugins offers another third-party plugin for OpenCart to connect to the payment gateway.

OrangeCRM is an enterprise quality set of tools designed to help you run your continuity or direct marketing business. Whether your company is a start-up or you manage millions of customer records OrangeCRM can seamlessly integrate into your business process. OrangeCRM is customer centered business management and intelligence.

ORANGE CRM has built-in support for our system.

OrderLogix is an Order Management and Sales Optimization software with multi-channel support, call center tools, inventory & warehousing, and more.

ORDER LOGIX has built-in support for our system.

Order management can be a real chore. But not with Orderwave. Over the product's 8 year history we've been driven to continually address the needs warehouse managers, marketers, customer service centers, and many others in ways that reduce management costs and time.

OrderWave is directly integrated with the payment gateway.

osCommerce is a free, open source ecommerce package.

Filename: oscommerce-v2.3.x_Install.zip

This payment module adds support using the Three Step Redirect integration, which keeps merchants and their environment outside the scope of transmitting sensitive payment information.

Paid Memberships Pro is a WordPress Plugin and support community for membership site curators. PMPro's rich feature set allows you to add a new revenue source to your new or current blog or website and is flexible enough to fit the needs of almost all online and offline businesses.

The Paid Membership Pro plugin connects to the payment gateway using the AIM method of the gateway emulator.

PaperCut's print management software has helped over 50,000 organizations reduce their print costs and their environmental impact in the areas of Education, SME & Corporate, and Professional Client Billing.

Papercut connects to the payment gateway using the SIM method of the gateway emulator.

The PayIT by Phone virtual terminal is a telephone based automated payment processing gateway that allows callers to process payment card and ACH transactions 24 hours a day without involving a live agent. PayIT is PCI DSS level 1 compliant.

PayIT Pay-by-Phone has built-in support for our system. Click on the link below to get more information about their product.

Shopping cart software with no monthly fees that allows merchants to create stunning and highly customized ecommerce enabled internet storefronts.

PDG Software connects to us through our Gateway Emulator. Click on the link below for more details.

PDshop is an award winning online store, shopping cart, and content management system from PageDown Technology. PDshop is a complete online store & ecommerce system, it includes hundreds of features, everything you need to start building a great looking website, or online store!

PDshop connects to the payment gateway using the AIM method of the gateway emulator.

Are you looking for the ideal software solution so you can run your own online auction web-site? If so, then you have come to the right place.

Probid can be integrated with the payment gateway using the gateway emulator.

Photo Cart is the online sales solution for all types of working photographers including event, wedding, sports, portrait and more. Loaded with features like public & private galleries, packages, print credits, downloadable photos, favorites and a ton more.

Photo Cart connects to the payment gateway using the gateway emulator.

Pinnacle Cart is an extremely powerful php shopping cart and web site builder application that allows you to create, manage and effectively market your store online.

Pinnacle Cart has built-in support for our system. Click on the link below for more details on configuring Pinnacle Cart to be used with the gateway.

Robust & Powerful software designed for MLM, Network Marketing, and Direct Sales companies. Features include; integrated administrative & members (IBO's) back office, website replicator, shopping cart, lead management, real-time genealogy tracking, graphical reports, etc... Supports various types of compensation plan structures, and much more.

Plexum has built-in support for our system. Click on the link below to get more information about their product.

 Our shopping cart software is database driven with import and export capability, secure server enabled, and customizable with the ability to easily create a template for itself from any page on your web site. Our software is SEO friendly, Mobile Friendly, and offers features such as free SSL Cert, Email notifications, promo/discount code support, automatic shipping fee calculations, and unlimited categories!

PRECISION WEB-HOSTING/CART has built-in support for our system.

Premium Web Cart offers highly customizable functionality such as online scheduling, Recurring Billing, Membership System, Ticket Support, Affiliate system and more!

Build an Online Store: Fast, Efficient and Easy to Use, Prestashop's free e-commerce solution provides everything you need to open, operate and maintain a successful online store.

Prestashop will work using the gateway emulator.

PledgedPlugins offers another third-party plugin for Prestashop to connect to the payment gateway.

PrestoMart is a cooperative shopping network of PrestoStore sellers. When you list an item in your PrestoStore, shopping it is also automatically listed and promoted in PrestoMart. Having your items listed for sale at several locations on the Internet increases your overall exposure to Internet shoppers.

Prestocart connects to the payment gateway using the gateway emulator.

PrintNow’s web to print Storefront solution was designed to serve the unique needs of the printing industry and bridges the gap between those who buy print products and those who sell them, by satisfying the needs for both types of users. Design and deploy for various brands, product groups, B2B, B2C, affiliates, franchises, co-branded stores and more; anytime from anywhere in the world.

PRINTNOW has built-in support for our system.

QuickCart is shopping cart software and hosted shopping cart store builder that will instantly add a shopping cart to any web site.

QuickCart has built-in support for our system. Click on the link below to get more information about their product.

QuoteWerks is specialized software used in every industry for creating sales quotes and proposals. Rather than using Microsoft® Word® or Excel® to create your quotes and proposals, you can benefit from a tool that is specialized for the task of creating quotes and proposals.

QUOTEWERKS has built-in support for our system.

Chargent Payment Processing for Salesforce is a 100% Salesforce native credit card / ACH payment solution for one time or recurring billing. Chargent puts you in complete control of your payment processing, managing everything right in Salesforce where your customer data is stored. Available as an easy-to-install Salesforce add-on, our highly extensible platform has been deployed in hundreds of organizations since 2009. Chargent comes with pre-built integrations to 15+ payment gateways, with developer tools that make it easy to customize to fit any business process.

CHARGENT PLUGIN has built-in support for our system.

The SecureNetShop Shopping Cart solution is exceptionally feature-rich and extremely easy-to-use. The internet's #1 ecommerce shopping cart software is primed to provide you and your customers with a huge array of benefits.

SecureNetShop has built-in support for our system. Click on the link below to get more information about their product.

ShopSite is the easiest-to-use shopping cart software for small to medium-sized businesses. With our e-commerce software and intuitive interface, you can have a store online in 15 minutes. With our rich feature set your online store won't outgrow our shopping cart, and you will not need expensive add-ons in order to have a fully functioning store.

ShopSite can connect to the payment gateway using the SIM or AIM method of the gateway emulator.

Shopp is a simple, flexible ecommerce plugin for WordPress with a secure shopping cart, easy product catalog, discounts & more. Sell anything, Sell amazing.

The Shopp plugin can be integrated to the payment gateway by using the AIM method of the gateway emulator with the username only permission enabled for your gateway account.

ShopperPress is a Premium WordPress theme that transforms WordPress into a fully functional online store with shopping cart functionality. ShopperPress is the ideal solution for anyone who wants to sell products or services, digital downloads or affiliate products online. You can even set up a catalog!

SHOPPERPRESS THEME connects to the payment gateway using the SIM method of the gateway emulator.

SiteCube.com is an incredibly easy HTML 5 website building solution created for independent professionals like doctors, attorneys, musicians, models etc and small businesses like restaurants, salons etc. Sitecube.com brings together different aspects which are needed to put a professional site together.

Site Cube can connect to the payment gateway using the link alternative for QuickClick.

SkyCreek managed services provide innovative functional capabilities that go beyond traditional out-of-the-box standard features of IVR systems, multi-channel contact platforms and customer experience management applications. They are designed specifically for the needs of high-volume, enterprise operations and are designed to elevate the precision, stability and performance of the automated contact programs we manage and support.

SKYCREEK IVR VOICE has built-in support for our system.

SmartCart is a catalog builder and ecommerce shopping cart system for online stores.

SmartCart has built-in support for our system. Click on the link below to get more information about their product.

SmartWin Technology has built-in support for our system. Click on the link below to get more information about their product.

Simply the most user friendly and feature rich shopping cart module for DotNetNuke on the market today. Easy to configure backend cart settings will get you up and running fast! Perfect for B2C or B2B Ecommerce Sites.

Smith-Cart is a robust turnkey ecommerce solution, with user friendly functionality that allows you to immediately start to sell online. Optimized programming code makes it possible to build stores ranging from a single product to a full featured online store that can handle over 10,000 products. Smith-Cart is designed for ease of use and flexible customizations, to meet all your needs. Your store will be using the latest ecommerce innovations, like fast checkout, affiliate marketing integration and search engine promotion tools to increase your sales.

Drive high-volume eCommerce with Spark Online Store. Run, manage and market your online stores in one place.

SparkPay has built-in support for our system. Click on the link below to get more information about their product.

The Spree storefront offers a full feature set and is built on common standards, so you don't have to compromise speed to market, efficiency or innovation. The modular platform allows you to easily configure, supplement or replace any functionality you need, so that you can build the exact storefront that you want.

SPREECOMMERCE connects to us through our Gateway Emulator.

An 'elegant' subscription service in an PCI Compliant Environment.

Spreedly is directly integrated with the payment gateway.

Squirrelcart PHP Shopping Cart software is a fully customizable, robust php shopping cart, designed with the advanced developer and web novice in mind.

Squirrel Cart connects to the payment gateway using the gateway emulator. For it to work properly, you must have username only enabled in the gateway or modify the module to send X_TRAN_KEY instead of X_PASSWORD.

SunShop has built-in support for our system. Click on the link below to get more information about their product.

Templatic offers Premium WordPress themes that cater to the ecommerce business needs. Our E-commerce themes come with everything you need in order to start an online shop. Manage shipping, tax and payments using PayPal, 2Checkout or other included gateways. To sweeten the deal even further, all themes are fully compatible with WooCommerce ! Whether you are selling clothes, car spare parts or goods and you need an online store theme for Wordpress, choose one of beautifully designed online shop themes.

TEMPLATIC THEMES has built-in support for our system.

TEMPLATIC THEMES connects to us through our Gateway Emulator.

Ideal for merchants, themes constructors and developers. Use it as shopping cart, catalog or framework. Extend the eCommerce functionality with plugins and themes exactly in same way that you do with WordPress.

TheCartPress integrates using the Gateway Emulator SIM Method.

TicketSpice offers the ability to easily create professional ticketing pages. Anyone who has ever clicked a mouse can edit, publish and manage online ticketing themselves. No specialized technical knowledge required!

TicketSpice will connect to the payment gateway using the AIM method of the gateway emulator.

Tix, Inc has built-in support for our system. Click on the link below to get more information about their product.

The first open source shopping cart solution designed for offering great user experience for all digital devices from a PC to an iPhone.

Tomato Cart will connect to the payment gateway using the AIM method of the gateway emulator.

Triangle CRM helps you automate and grow your marketing campaigns. Order management, payment processing, fulfillment, contact center, data services and more, on a real-time, secure cloud platform.

TRIANGLE CRM has built-in support for our system.

TRUX provides waste management software solutions for your business-critical data. Our applications have been designed and programmed by waste industry experts. The TRUX software suite is scalable and contains applications for waste hauling, landfill and transfer station management, and vehicle asset maintenance.

TRUX ROUTE MANAGEMENT connects to us through our Gateway Emulator.

Ubercart is an exciting open source e-commerce shopping cart that fully integrates your online store with Drupal, the leading open source content management system.

Filename: ubercart-v1.x_nmi_gateway_services.zip

This module adds support for our system to Ubercart version 1.x.

Filename: ubercart-v2.x_nmi_gateway_services.zip

This module adds support for our system to Ubercart version 2.x

Filename: ubercart-v3.x.zip

This module adds support for our system to Ubercart version 3.x using the Three Step Redirect integration, which keeps merchants and their environment outside the scope of transmitting sensitive payment information.

UberCart can connect to the Gateway via the Gateway Emulator, AIM method.

Ultimate Client Manager is an open-source CRM and Project Management System for Freelancers and small businesses who need a quick and simple, but powerful way to manage their customers. Take advantage of powerful tools such as invoicing, finance/expense tracking, email ticketing system, Recurring Payments, Encrypted Data, Jobs/Tasks, and Quote approvals!

ULTIMATE CLIENT MANAGER/UCM connects to us through our Gateway Emulator.

UltraCart is the premiere hosted shopping cart and e-commerce platform. In continuous development for over 12 years, the UltraCart platform provides you with state of the art tools to manage every aspect of your e-commerce business. Much more than simple order taking, UltraCart integrates with your entire e-commerce business, including shopping cart, payment processing, marketing & affiliate management, shipping systems, product fulfillment, and accounting systems. UltraCart is the most powerful and flexible online commerce system available today.

UltraCart has built-in support for our system. Click on the link below to get more information about their product.

virtualCART®, delivers the most cost effective and highest quality shopping cart service available to thousands of internet merchants around the world. virtualCART® is affordable, easy to setup, powerful in features, and is extremely reliable. Transform your basic web site into a powerful selling machine in minutes.

VIRTUAL CART/VCART connects to us through our Gateway Emulator.

VirtueMart is an Open Source E-Commerce solution to be used together with a Content Management System (CMS) called Joomla!. Joomla! and VirtueMart are written in PHP and can be used in typical PHP/MySQL environments.

VirtueMart connects to us through our Gateway Emulator. Click on the link below for more details.

Volusion offers a variety of ecommerce packages and has been the answer for over 35,000 entrepreneurs looking to sell online.

Volusion's ecommerce packages fully support our system. Click on the link below for more details on configuring Volusion to be used with the gateway.

VP-ASP offers both an open source shopping cart and an all-in-one ecommerce solution.

VP-ASP has built-in support for our system. Click on the link below to get more information about their product.

Join over 10,000 businesses that get organized, increase sales, improve marketing ROI, and deliver delightful customer experiences with Vtiger CRM.

VTIGER CRM connects to us through our Gateway Emulator.

Web.com offers a built-in Website Builder with Reliable & secure shopping cart with real-time payment and shipping options

Web.com is directly integrated with the payment gateway and supports e-check.

Choose from a wide variety of templates that you can fully customize. Our template gallery has categories and styles for everyone, whether you're an online store, a non-profit, a restaurant, a kickball team, or an amateur photographer.

Webs can be integrated with the payment gateway using the QuickClick Shopping Cart.

Weebly gives millions of people a surprisingly easy and affordable way to create a site that is as unique as they are. With a Weebly site, people can start their own business, communicate with their clients, showcase their achievements, and be an authority on personal and professional interests. Weebly gives everyone the freedom to start a site, blog or online store that works brilliantly across computers, phones and tablets.

WEEBLY can be integrated using QuickClick.

WHMCS is an all-in-one client management, billing & support solution for online businesses. Handling everything from signup to termination, WHMCS is a powerful business automation tool that puts you firmly in control.

WHMCS connects to the payment gateway using the AIM method of the gateway emulator.

Wild Apricot is online membership software for associations, non-profits, clubs and subscription websites. It is a cloud-based system, so you can use it right from your web browser. And your volunteers can pitch in too, without installing any software!

Wild Apricot is directly integrated with the payment gateway.

WishList Member™ is a powerful, yet easy to use membership solution that can turn any WordPress site into a full-blown membership site. Just unzip and upload the plugin, and within minutes you’ll have your own membership site up and running… complete with protected, members-only content, integrated payments, member management, and so much more!

Wix offers customizable flash or HTML5 based websites for free.

Wix can use QuickClick link alternatives to connect to the payment gateway.

A WordPress eCommerce toolkit that helps you sell anything. Beautifully transform your WordPress website into a thorough-bred eCommerce store. Delivering enterprise-level quality & features whilst backed by a name you can trust. Say hello to WooCommerce.

There is also a third party plugin to connect to the payment gateway for WooCommerce.

WooCommerce connects to the payment gateway using the SIM method of the gateway emulator.

PledgedPlugins offers another third-party plugin for WooCommerce to connect to the payment gateway.

This plugin uses the Three Step Redirect API to process transactions as well as optionally save customers to the Customer Vault.

Wordpress.com is a hosted website and blogging solution that lets you create beautiful and powerful websites or blogs. Use your own domain name, optimize with SEO, and get the best support in the business.

WORDPRESS.COM can be integrated using QuickClick.

In a Nutshell this powerful, sleek and conversion oriented WordPress shopping cart plugin allows you to sell any type of digital products and services from your WordPress powered site securely with complete automation.

This plugin can be integrated with the payment gateway using the gateway emulator.

WP Gateways makes a number of plugins for WordPress. They have multiple plugins for a number of popular WordPress shopping carts.

WP Gateways has built-in support for our system. Click on the link below to get more information about their product.

WP e-Commerce remains the most popular, most robust e-commerce plugin for WordPress and is the ideal way to sell products, downloads or services online.

There is also a direct integration provided by a third-party plugin that will work.

WP-Invoice lets you create and send web-invoices for your clients.

This plugin connects to the payment gateway using the AIM method of the gateway emulator. The Plugin's recurring feature is not compatible with the Gateway.

Shopping cart software trusted by thousands of successful business owners worldwide. Web-based administrator area and installation wizard make setup and maintenance of the shopping cart as easy as point and click. No PHP or other programming knowledge is required to set up and run a world class online store.

X-Cart connects to us through our Gateway Emulator. Click on the link below for more details.

xAuthorize has several ecommerce related products and services.

xAuthorize's ecommerce solutions have built-in support for our system. Click on the link below to get more information about their product.

Create a professional, free website in minutes with no technical experience required! Make your free website with our easy drag and drop functionality. Everything you need is at your fingertips.

Yola integrates to the payment gateawy using the QuickClick Link Alternative only.

ZenCart is a free, user-friendly open source PHP-based shopping cart system.

Filename: zencart-v1.5.x_Install.zip

This payment module adds support using the Three Step Redirect integration, which keeps merchants and their environment outside the scope of transmitting sensitive payment information.

Multifront is the industry's best ASP.NET ecommerce platform, allowing you to deliver more relevant B2B ecommerce and B2C ecommerce website experiences. As a result, your ecommerce website will convert more customers, increase average order value, reduce shopping cart abandonments, and offer relevant brand experiences that keep shoppers coming back.

ZNODE connects to us through our Gateway Emulator.

Zuora is an end-to-end subscription management platform with the capabilities and insights you need to grow a healthy subscription business and create customers for life.

Zuora has built-in support for our system. Click on the link below to get more information about their product.

Methodology
Direct Post API

Transactions

Steps:

1. The customer sends their payment information to the merchant's web site.
2. The merchant web site posts the payment data to the Payment Gateway.
3. The Payment Gateway responds immediately with the results of the transactions.
4. The merchant web site displays the appropriate message to the customer.

The communication method used to send messages to the Payment Gateway's server is the standard HTTP protocol over an SSL connection.

In the Direct Post method, the communications with the cardholder (Steps 1 and 4) are developed completely by the merchant and therefore are not defined by the Payment Gateway. Step 1 should simply collect the payment data from the cardholder and Step 4 should display the appropriate transaction receipt or declined message.

In Step 2, transaction details should be delivered to the Payment Gateway using the POST method with the appropriate variables defined below posted along with the request.

In Step 3, the transaction responses are returned in the body of the HTTP response in a query string name/value format delimited by ampersands. For example: variable1=value1&variable2=value2&variable3=value3

Customer Vault

The Customer Vault was designed specifically for businesses of any size to address concerns about handling customer payment information. Visa and MasterCard have instituted the Payment Card Industry (PCI) Data Security to protect cardholder data, wherever it resides, ensuring that members, merchants, and service providers maintain the highest information security standards.

These associations have also deemed that merchants will be held liable for any breach of cardholder data. This has become a major concern for merchants who handle credit card or electronic check payments. The Customer Vault is designed for these merchants who desire to avoid the tremendous costs and resources involved in becoming PCI compliant under these circumstances.

The Customer Vault does this by allowing merchants to transmit their payment information through a Secure Sockets Layer (SSL) connection for storage in our Level 1 PCI certified data facility. Once the customer record has been securely transmitted to the Customer Vault, the merchant can then initiate transactions remotely without having to access cardholder information directly. This process is accomplished without the merchant storing the customer's payment information in their local database or payment application.

Transaction Types
Direct Post API

Sale (sale)

Transaction sales are submitted and immediately flagged for settlement.

Authorization (auth)

Transaction authorizations are authorized immediately but are not flagged for settlement. These transactions must be flagged for settlement using the capture transaction type.

Capture (capture)

Transaction captures flag existing authorizations for settlement. Only authorizations can be captured. Captures can be submitted for an amount equal to or less than the original authorization.

Void (void)

Transaction voids will cancel an existing sale or captured authorization. In addition, non-captured authorizations can be voided to prevent any future capture. Voids can only occur if the transaction has not been settled.

Refund (refund)

Transaction refunds will reverse a previously settled or pending settlement transaction. If the transaction has not been settled, a transaction void can also reverse it.

Credit (credit)

Transaction credits apply an amount to the cardholder's card that was not originally processed through the Gateway. In most situations credits are disabled as transaction refunds should be used instead.

Validate (validate)

This action is used for doing an "Account Verification" on the cardholder's credit card without actually doing an authorization.

Update (update)

Transaction updates can be used to update previous transactions with specific order information, such as a tracking number and shipping carrier.

Transaction Variables
Direct Post API

POST URL

POST URL: https://integratepayments.transactiongateway.com/api/transact.php

Sale/Authorization/Credit/Validate/Offline

Variable Name Description
type* The type of transaction to be processed.
Values: 'sale', 'auth', 'credit', 'validate', or 'offline'
security_key* API Security Key assigned to a merchant account.
New keys can be generated from the merchant control panel in Settings > Security Keys
payment_token The tokenized version of the customer's card or check information. This will be generated by Collect.js and is usable only once.
ccnumber** Credit card number.
ccexp** Credit card expiration date.
Format: MMYY
cvv The card security code. While this is not required, it is strongly recommended.
checkname*** The name on the customer's ACH account.
checkaba*** The customer's bank routing number.
checkaccount*** The customer's bank account number.
account_holder_type The type of ACH account the customer has.
Values: 'business' or 'personal'
account_type The ACH account entity of the customer.
Values: 'checking' or 'savings'
sec_code The Standard Entry Class code of the ACH transaction.
Values: 'PPD', 'WEB', 'TEL', or 'CCD'
amount Total amount to be charged. For validate, the amount must be omitted or set to 0.00.
Format: x.xx
surcharge Surcharge amount.
Format: x.xx
currency The transaction currency. Format: ISO 4217
payment*** The type of payment.
Default: 'creditcard'
Values: 'creditcard', 'check', or 'cash'
processor_id If using Multiple MIDs, route to this processor (processor_id is obtained under Settings->Transaction Routing in the Control Panel).
authorization_code Specify authorization code. For use with "offline" action only.
dup_seconds Sets the time in seconds for duplicate transaction checking on supported processors. Set to 0 to disable duplicate checking. This value should not exceed 7862400.
descriptor Set payment descriptor on supported processors.
descriptor_phone Set payment descriptor phone on supported processors.
descriptor_address Set payment descriptor address on supported processors.
descriptor_city Set payment descriptor city on supported processors.
descriptor_state Set payment descriptor state on supported processors.
descriptor_postal Set payment descriptor postal code on supported processors.
descriptor_country Set payment descriptor country on supported processors.
descriptor_mcc Set payment descriptor mcc on supported processors.
descriptor_merchant_id Set payment descriptor merchant id on supported processors.
descriptor_url Set payment descriptor url on supported processors.
billing_method Should be set to 'recurring' to mark payment as a recurring transaction or 'installment' to mark payment as an installment transaction.
Values: 'recurring', 'installment'
billing_number Specify installment billing number, on supported processors. For use when "billing_method" is set to installment.
Values: 0-99
billing_total Specify installment billing total on supported processors. For use when "billing_method" is set to installment.
order_template Order template ID.
order_description Order description.
Legacy variable includes: orderdescription
orderid Order Id
ipaddress IP address of cardholder, this field is recommended.
Format: xxx.xxx.xxx.xxx
tax**** Total tax amount.
shipping**** Total shipping amount
ponumber**** Original purchase order
first_name Cardholder's first name.
Legacy variable includes: firstname
last_name Cardholder's last name
Legacy variable includes: lastname
company Cardholder's company
address1 Card billing address
address2 Card billing address, line 2
city Card billing city
state Card billing state.
Format: CC
zip Card billing zip code
country Card billing country.
Country codes are as shown in ISO 3166. Format: CC
phone Billing phone number
fax Billing fax number
email Billing email address
social_security_number Customer's social security number, checked against bad check writers database if check verification is enabled.
drivers_license_number Driver's license number.
drivers_license_dob Driver's license date of birth.
drivers_license_state The state that issued the customer's driver's license.
shipping_firstname Shipping first name
shipping_lastname Shipping last name
shipping_company Shipping company
shipping_address1 Shipping address
shipping_address2 Shipping address, line 2
shipping_city Shipping city
shipping_state Shipping state
Format: CC
shipping_zip Shipping zip code
shipping_country Shipping country
Country codes are as shown in ISO 3166. Format: CC
shipping_email Shipping email address
merchant_defined_field_# You can pass custom information in up to 20 fields.
Format: merchant_defined_field_1=Value
customer_receipt If set to true, when the customer is charged, they will be sent a transaction receipt.
Values: 'true' or 'false'
signature_image Cardholder signature image. For use with "sale" and "auth" actions only.
Format: base64 encoded raw PNG image. (16kiB maximum)
cardholder_auth‡‡ Set 3D Secure condition.
Values: 'verified' or 'attempted'
eci‡‡ E-commerce indicator.
Values: '0', '1', '2', '5', '6', or '7'
cavv‡‡ Cardholder authentication verification value.
Format: base64 encoded
xid‡‡ Cardholder authentication transaction id.
Format: base64 encoded
three_ds_version‡‡ 3DSecure version.
Examples: "1.0.2" or "2.0"
directory_server_id Directory Server Transaction ID. May be provided as part of 3DSecure 2.0 authentication.
Format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
source_transaction_id Specifies a payment gateway transaction id in order to associate payment information with a Subscription or Customer Vault record. Must be set with a 'recurring' or 'customer_vault' action.
Recurring specific fields
recurring Recurring action to be processed.
Values: add_subscription
plan_id Create a subscription tied to a Plan ID if the sale/auth transaction is successful.
plan_payments The number of payments before the recurring plan is complete.
Note: Use '0' for 'until canceled'
plan_amount The plan amount to be charged each billing cycle.
Format: x.xx
day_frequency How often, in days, to charge the customer. Cannot be set with 'month_frequency' or 'day_of_month'.
month_frequency How often, in months, to charge the customer. Cannot be set with 'day_frequency'. Must be set with 'day_of_month'.
Values: 1 through 24
day_of_month The day that the customer will be charged. Cannot be set with 'day_frequency'. Must be set with 'month_frequency'.
Values: 1 through 31 - for months without 29, 30, or 31 days, the charge will be on the last day
start_date The first day that the customer will be charged.
Format: YYYYMMDD
Customer Vault specific fields
customer_vault Associate payment information with a Customer Vault record if the transaction is successful.
Values: 'add_customer' or 'update_customer'
customer_vault_id Specifies a customer vault id. If not set, the payment gateway will randomly generate a customer vault id.
Stored Credentials (CIT/MIT)
initiated_by Who initiated the transaction.
Values: 'customer' or 'merchant'
initial_transaction_id Original payment gateway transaction id.
stored_credential_indicator The indicator of the stored credential.
Values: 'stored' or 'used'
Use 'stored' when processing the initial transaction in which you are storing a customer's payment details (customer credentials) in the Customer Vault or other third-party payment storage system.
Use 'used' when processing a subsequent or follow-up transaction using the customer payment details (customer credentials) you have already stored to the Customer Vault or third-party payment storage method.
Level III specific order fields
shipping Freight or shipping amount included in the transaction amount
Default: '0.00'
Format: x.xx
tax The sales tax, included in the transaction amount, associated with the purchase. Setting tax equal to '-1' indicates an order that is exempt from sales tax.
Default: '0.00'
Format: x.xx
ponumber Purchase order number supplied by cardholder
orderid Identifier assigned by the merchant. This defaults to gateway transaction id.
shipping_country Shipping country (e.g. US)
Format: CC
shipping_postal Postal/ZIP code of the address where purchased goods will be delivered. This field can be identical to the 'ship_from_postal' if the customer is present and takes immediate possession of the goods.
ship_from_postal Postal/ZIP code of the address from where purchased goods are being shipped, defaults to merchant profile postal code.
summary_commodity_code 4 character international description code of the overall goods or services being supplied. The acquirer or processor will provide a list of current codes.
duty_amount Amount included in the transaction amount associated with the import of purchased goods.
Default: '0.00'
Format: x.xx
discount_amount Amount included in the transaction amount of any discount applied to complete order by the merchant.
Default: '0.00'
Format: x.xx
national_tax_amount The national tax amount included in the transaction amount.
Default: '0.00'
Format: x.xx
alternate_tax_amount Second tax amount included in the transaction amount in countries where more than one type of tax can be applied to the purchases.
Default: '0.00'
Format: x.xx
alternate_tax_id Tax identification number of the merchant that reported the alternate tax amount.
vat_tax_amount Contains the amount of any value added taxes which can be associated with the purchased item.
Default: '0.00'
Format: x.xx
vat_tax_rate Contains the tax rate used to calculate the sales tax amount appearing. Can contain up to 2 decimal places, e.g. 1% = 1.00.
Default: '0.00'
Format: x.xx
vat_invoice_reference_number Invoice number that is associated with the VAT invoice.
customer_vat_registration Value added tax registration number supplied by the cardholder.
merchant_vat_registration Government assigned tax identification number of the merchant for whom the goods or services were purchased from.
order_date Purchase order date, defaults to the date of the transaction.
Format: YYMMDD
Level III specific line item detail fields
item_product_code_# Merchant defined description code of the item being purchased.
item_description_# Description of the item(s) being supplied.
item_commodity_code_# International description code of the individual good or service being supplied. The acquirer or processor will provide a list of current codes.
item_unit_of_measure_# Code for units of measurement as used in international trade.
Default: 'EACH'
item_unit_cost_# Unit cost of item purchased, may contain up to 4 decimal places.
item_quantity_# Quantity of the item(s) being purchased.
Default: '1'
item_total_amount_# Purchase amount associated with the item. Defaults to: 'item_unit_cost_#' x 'item_quantity_#' rounded to the nearest penny.
item_tax_amount_# Amount of tax on specific item, amount should not be included in 'total_amount_#'.
Default: '0.00'
item_tax_rate_# Percentage representing the value-added tax applied.
Default: '0.00'
item_discount_amount_# Discount amount which can have been applied by the merchant on the sale of the specific item. Amount should not be included in 'total_amount_#'.
item_discount_rate_# Discount rate for the line item. 1% = 1.00.
Default: '0.00'
item_tax_type_# Type of value-added taxes that are being used.
item_alternate_tax_id_# Tax identification number of the merchant that reported the alternate tax amount.
* Always required
** Required for credit card transactions
*** Required for ACH transactions
**** Required for Level 2 transactions
Required for Level 3 transactions
Required for offline transactions
‡‡ Required for 3D Secure transactions

Notes:

  • Level II fields are required for Level II processing.
  • Level II and Level III fields are required for Level III processing.
  • You can pass only credit card or e-check transaction variables in a request, not both in the same request.
  • Certain banks may require some optional fields.

Capture

Variable Name Description
type* Type of transaction.
Values: 'capture'
security_key* API Security Key assigned to a merchant account.
New keys can be generated from the merchant control panel in Settings > Security Keys
transactionid* Original payment gateway transaction id
amount* Total amount to be settled. This amount must be equal to or less than the original authorized amount.
Format: x.xx
tracking_number Shipping tracking number
shipping_carrier Shipping carrier.
Values: 'ups', 'fedex', 'dhl', or 'usps'
orderid Order id.
signature_image Cardholder signature image.
Format: base64 encoded raw PNG image. (16kiB maximum)
* Always required

Void

Variable Name Description
type* Type of transaction.
Values: 'void'
security_key* API Security Key assigned to a merchant account.
New keys can be generated from the merchant control panel in Settings > Security Keys
transactionid* Original payment gateway transaction id
void_reason** Reason the EMV transaction is being voided.
Values: 'fraud', 'user_cancel', 'icc_rejected', 'icc_card_removed', 'icc_no_confirmation', or 'pos_timeout'
payment*** The type of payment.
Default: 'creditcard'
Values: 'creditcard' or 'check'
* Always required
** Conditionally required for EMV transactions
*** Required for ACH transactions

Refund

Variable Name Description
type* Type of transaction.
Values: 'refund'
security_key* API Security Key assigned to a merchant account.
New keys can be generated from the merchant control panel in Settings > Security Keys
transactionid* Original payment gateway transaction id
amount Total amount to be refunded. This amount may be equal to or less than the settled amount. Setting the amount to 0.00 will refund the entire amount.
Format: x.xx
payment** The type of payment.
Default: 'creditcard'
Values: 'creditcard' or 'check'
* Always required
** Required for ACH transactions

Update

Variable Name Description
type* Type of transactions.
Values: 'update'
security_key* API Security Key assigned to a merchant account.
New keys can be generated from the merchant control panel in Settings > Security Keys
transactionid* Original payment gateway transaction id
payment** The type of payment.
Default: 'creditcard'
Values: 'creditcard' or 'check'
tracking_number Shipping tracking number
shipping Total shipping amount.
Format: x.xx
shipping_postal Postal/ZIP code of the address where purchased goods will be delivered. This field can be identical to the 'ship_from_postal' if the customer is present and takes immediate possession of the goods.
ship_from_postal Postal/ZIP code of the address from where purchased goods are being shipped, defaults to merchant profile postal code.
shipping_country Shipping Country Code.
shipping_carrier Shipping carrier.
Values: 'ups', 'fedex', 'dhl', or 'usps'
shipping_date Shipping date.
Format: YYYYMMDD
order_description Order Description.
Legacy variable includes: orderdescription
order_date Order date.
Format: YYYYMMDD
customer_receipt If set to true, when the customer is charged, they will be sent a transaction receipt.
Values: 'true' or 'false'
signature_image Cardholder signature image.
Format: base64 encoded raw PNG image. (16kiB maximum)
ponumber Cardholder's purchase order number.
summary_commodity_code 4 character international description code of the overall goods or services being supplied. The acquirer or processor will provide a list of current codes.
duty_amount Amount included in the transaction amount associated with the import of purchased goods.
Format: x.xx
discount_amount Amount included in the transaction amount of any discount applied to complete order by the merchant.
Format: x.xx
tax Tax amount.
Format: x.xx
national_tax_amount The national tax amount included in the transaction amount.
Format: x.xx
alternate_tax_amount Second tax amount included in the transaction amount in countries where more than one type of tax can be applied to the purchases.
Format: x.xx
alternate_tax_id Tax identification number of the merchant that reported the alternate tax amount.
vat_tax_amount Contains the amount of any value added taxes which can be associated with the purchased item.
vat_tax_rate Contains the tax rate used to calculate the sales tax amount appearing. Can contain up to 2 decimal places, e.g. 1% = 1.00.
vat_invoice_reference_number Invoice number that is associated with the VAT invoice.
customer_vat_registration Value added tax registration number supplied by the cardholder.
merchant_vat_registration Government assigned tax identification number of the merchant for whom the goods or services were purchased from.
merchant_defined_field_# Merchant Defined Fields.
Format: merchant_defined_field_1=Value
* Always required
** Required for ACH transactions

Invoicing Variables
Direct Post API

POST URL

POST URL: https://integratepayments.transactiongateway.com/api/transact.php

Create Invoice

Variable Name Description
invoicing* Create a new invoice and email it to the customer.
Values: 'add_invoice'
security_key* API Security Key assigned to a merchant account.
New keys can be generated from the merchant control panel in Settings > Security Keys
amount* Total amount to be invoiced. Must be greater than 0.00.
Format: x.xx
email* Billing email address
An invoice will be sent to this address when it is created.
payment_terms When the invoice should be paid
Default: 'upon_receipt'
Values: 'upon_receipt', or integers from 0-999.
payment_methods_allowed What payment methods a customer may use when paying invoice.
Defaults to all available payment methods available in your merchant account
Values: 'cc', 'ck', and 'cs'. Multiple payment types can be selected by comma-separating values.
currency The transaction currency.
Format: ISO 4217
order_description Order description.
Legacy variable includes: orderdescription
orderid Order ID.
customer_id Customer ID.
customer_tax_id Customer Tax ID.
tax Total tax amount.
shipping Total shipping amount.
ponumber Original purchase order.
first_name Cardholder's first name.
Legacy variable includes: firstname
last_name Cardholder's last name.
Legacy variable includes: lastname
company Cardholder's company.
address1 Card billing address.
address2 Card billing address, line 2.
city Card billing city.
state Card billing state.
Format: CC
zip Card billing zip code.
country Card billing country.
Country codes are as shown in ISO 3166. Format: CC
phone Billing phone number.
fax Billing fax number.
website Customer website.
shipping_firstname Shipping first name.
shipping_lastname Shipping last name.
shipping_company Shipping company.
shipping_address1 Shipping address.
shipping_address2 Shipping address, line 2.
shipping_city Shipping city.
shipping_state Shipping state.
Format: CC
shipping_zip Shipping zip code.
shipping_country Shipping country.
Country codes are as shown in ISO 3166. Format: CC
shipping_email Shipping email address.
merchant_defined_field_# You can pass custom information in up to 20 fields.
Format: merchant_defined_field_1=Value
Product Information
item_product_code_# Merchant defined description code of the item being purchased.
item_description_# Description of the item(s) being supplied.
item_commodity_code_# International description code of the individual good or service being supplied. The acquirer or processor will provide a list of current codes.
item_unit_of_measure_# Code for units of measurement as used in international trade.
Default: 'EACH'
item_unit_cost_# Unit cost of item purchased, may contain up to 4 decimal places.
item_quantity_# Quantity of the item(s) being purchased.
Default: '1'
item_total_amount_# Purchase amount associated with the item. Defaults to: 'item_unit_cost_#' x 'item_quantity_#' rounded to the nearest penny.
item_tax_amount_# Amount of tax on specific item, amount should not be included in 'total_amount_#'.
Default: '0.00'
item_tax_rate_# Percentage representing the value-added tax applied.
Default: '0.00'
item_discount_amount_# Discount amount which can have been applied by the merchant on the sale of the specific item. Amount should not be included in 'total_amount_#'.
item_discount_rate_# Discount rate for the line item. 1% = 1.00.
Default: '0.00'
item_tax_type_# Type of value-added taxes that are being used.
item_alternate_tax_id_# Tax identification number of the merchant that reported the alternate tax amount.
* Always required

Update Invoice

Variable Name Description
invoicing* Update an existing invoice.
Values: 'update_invoice'
security_key* API Security Key assigned to a merchant account.
New keys can be generated from the merchant control panel in Settings > Security Keys
invoice_id* The invoice ID to be updated.
* Always required

Notes:

All variables (besides currency) on an invoice may be updated. Updating an invoice will not result in a new invoice being sent to the customer. To send the invoice after updating an invoice, use the send_invoice request after making changes.

Send Invoice

Variable Name Description
invoicing* Send an existing invoice to a customer.
Values: 'send_invoice'
security_key* API Security Key assigned to a merchant account.
New keys can be generated from the merchant control panel in Settings > Security Keys
invoice_id* The invoice ID to be emailed.
* Always required

Notes:

The invoice will be sent to the billing email address assigned to the invoice.

Close Invoice

Variable Name Description
invoicing* The invoice to be closed.
Values: 'close_invoice'
security_key* API Security Key assigned to a merchant account.
New keys can be generated from the merchant control panel in Settings > Security Keys
invoice_id* The invoice ID to be closed.
* Always required

Retail Data
Direct Post API

Passing Unencrypted Retail Magnetic Stripe Data

Variable Name Description
track_1 Raw Magnetic Stripe Data
track_2 Raw Magnetic Stripe Data
track_3 Raw Magnetic Stripe Data

Passing MagTek Magensa Encrypted Magnetic Stripe Data

Variable Name Description
magnesafe_track_1 Raw MagTek Magensa Data
magnesafe_track_2 Raw MagTek Magensa Data
magnesafe_magneprint Raw MagTek Magensa Data
magnesafe_ksn Raw MagTek Magensa Data
magnesafe_magneprint_status Raw MagTek Magensa Data

Passing IDTech M130 Encrypted Swipe Data

Variable Name Description
encrypted_track_1 Raw encrypted data
encrypted_track_2 Raw encrypted data
encrypted_track_3 Raw encrypted data
encrypted_ksn Raw encrypted data

Passing IDTech M130 Encrypted Keyed Data

Variable Name Description
encrypted_data Raw encrypted data

Passing Ingenico Telium 2 Chip Card Data

Variable Name Description
entry_mode The type of transaction data to be processed.
Value: 'emv_icc'
emv_auth_request_data EMV Data for the transaction as received from the EMV Chip Card SDK.
emv_device The EMV - capable card reader.
Value: 'ingenico_rba'
verification_method Method used to verify the EMV transaction.
Values: 'signature', 'offline_pin', 'offline_pin_signature', or 'none'
encrypted_ksn Raw encrypted data
encrypted_track_2 Raw encrypted data

Passing Ingenico Telium 2 Swipe Data

Variable Name Description
entry_mode The type of transaction data to be processed.
Values: 'swiped' or 'swiped_emv_fallback'
emv_device The EMV - capable card reader.
Value: 'ingenico_rba'
encrypted_ksn Raw encrypted data
encrypted_track_1 Raw encrypted data
encrypted_track_2 Raw encrypted data

Passing Ingenico Telium 2 NFC Data

Variable Name Description
entry_mode The type of transaction data to be processed.
Value: 'nfc_msd'
emv_device The EMV - capable card reader.
Value: 'ingenico_rba'
encrypted_ksn Raw encrypted data
encrypted_track_2 Raw encrypted data

Passing Ingenico Telium 2 Keyed Data

Variable Name Description
entry_mode The type of transaction data to be processed.
Value: 'keyed'
emv_device The EMV - capable card reader.
Value: 'ingenico_rba'
encrypted_ksn Raw encrypted data
encrypted_track_2 Raw encrypted data

Apple Pay
Direct Post API

Supported Processors

Currently Apple Pay is supported only on the TSYS - EMV platform.

Configuring Apple Pay

Creating an Apple Merchant ID
First, you must obtain an Apple Merchant ID before you can generate the Certificate Signing Request that Apple requires. You will need to set up an Apple Merchant ID in your iOS Developer Account. Follow these steps to complete the setup:
  1. Go to Apple's Developer Portal and log in to the Member Center to create a new Merchant ID.
  2. Navigate to the Certificates, Identifiers, and Profiles area of the Member Center, and then begin the Register Merchant ID process.
  3. You must then set the Apple Merchant ID within your gateway Control Panel under Settings -> Apple Pay.
Generating the Certificate Signing Request
Next, you will need to associate a Certificate with the Merchant ID in Apple's Developer Portal. After downloading the Certificate Signing Request from the gateway's options page, follow these steps.
  1. In Apple's Developer Portal, click on the Merchant ID and then click "Edit".
  2. Click "Create Certificate".
  3. You are obtaining a CSR file from a Payment Provider so you will not have to create one. Click "Continue" to proceed to the upload page.
  4. Click "Choose File..." and select the Gateway.certSigningRequest file you downloaded from the gateway's options page.

How to Obtain Apple Pay Payment Data

PassKit provides the payment data in the (PKPayment *)payment that is returned to your app's paymentAuthorizationViewController:didAuthorizePayment:completion method. The Apple Pay encrypted payment data is found in payment.token.paymentData.

payment.token.paymentData is a binary (NSData) object, so you must encode it as a hexadecimal string before it can be passed to the Gateway.

Passing Apple Pay Payment Data

To submit a payment with Apple Pay, send the encrypted token data into the applepay_payment_data variable. There is no need to decrypt the data in your app. Only the Gateway will have access to the private key that can decrypt the token.

Notes

When passing in applepay_payment_data, you should not include the variables ccnumber or ccexp; they are extracted from the token data.

Important Note: The authorization amount must match the amount the customer approves in the app. If you pass in a currency, that must also match the currency approved in the app. If omitted, the currency from the app is used.

For working example code, including how to obtain the PKPayment object and how to pass a simple transaction to the Gateway, download the sample project.

Variables

Variable Name Description
applepay_payment_data The encrypted Apple Pay payment data (payment.token.paymentData) from PassKit encoded as a hexadecimal string


Troubleshooting

If you receive the error "Failed to decrypt Apple Pay data. Ensure that the Apple Pay Merchant ID is correct in the Gateway Settings and that the certificate was generated from a Gateway Certificate Signing Request.", try these steps:
  1. Verify that the Merchant ID that Apple has in the developer portal exactly matches the Merchant ID in the Gateway's settings.
  2. Verify that your app's PKPaymentRequest's merchantIdentifier exactly matches the Merchant ID in the Gateway's settings.
  3. Ensure that the correct Merchant ID is checked in the Apple Pay section of the Capabilities tab in your project's target settings.
  4. Try creating a new Merchant ID. Reusing an existing Merchant ID with a new certificate may sometimes cause issues with encryption.

Recurring Variables
Direct Post API

POST URL

POST URL: https://integratepayments.transactiongateway.com/api/transact.php

Add a Plan

Variable Name Description
recurring* Add a recurring plan that subscriptions can be added to in the future.
Value: 'add_plan'
plan_payments* The number of payments before the recurring plan is complete.
Notes: '0' for until canceled
plan_amount* The plan amount to be charged each billing cycle.
Format: x.xx
plan_name* The display name of the plan.
plan_id* The unique plan ID that references only this recurring plan.
day_frequency** How often, in days, to charge the customer. Cannot be set with 'month_frequency' or 'day_of_month'.
month_frequency*** How often, in months, to charge the customer. Cannot be set with 'day_frequency'. Must be set with 'day_of_month'.
Values: 1 through 24
day_of_month*** The day that the customer will be charged. Cannot be set with 'day_frequency'. Must be set with 'month_frequency'.
Values: 1 through 31 - for months without 29, 30, or 31 days, the charge will be on the last day
* Always required
** Required unless 'month_frequency' and 'day_of_month' is set.
*** Required unless 'day_frequency' is set.

Add a Subscription to an Existing Plan

Variable Name Description
recurring* Associate payment information with a recurring plan.
Value: add_subscription
plan_id* The plan ID of the plan that the subscription will be associated with.
start_date The first day that the customer will be charged.
Format: YYYYMMDD
payment_token The tokenized version of the customer's card or check information. This will be generated by Collect.js and is usable only once.
ccnumber** Credit card number.
ccexp** Credit card expiration.
Format: MMYY
payment*** The type of payment.
Default: 'creditcard'
Values: 'creditcard' or 'check'
checkname*** The name on the customer's ACH account.
checkaccount*** The customer's bank account number.
checkaba*** The customer's bank routing number.
account_type The customer's ACH account type.
Values: 'checking' or 'savings'
currency Set transaction currency.
account_holder_type The customer's ACH account entity.
Values: 'personal' or 'business'
sec_code ACH standard entry class codes.
Values: 'PPD', 'WEB', 'TEL', or 'CCD'
first_name Cardholder's first name.
Legacy variable includes: firstname
last_name Cardholder's last name.
Legacy variable includes: lastname
address1 Card billing address.
city Card billing city
state Card billing state.
zip Card billing postal code.
country Card billing country code.
phone Billing phone number.
email Billing email address.
company Cardholder's company.
address2 Card billing address, line 2.
fax Billing fax number.
orderid Order ID
order_description Order Description
merchant_defined_field_# Can be set up in merchant control panel under 'Settings'->'Merchant Defined Fields'.
ponumber Cardholder's purchase order number.
processor_id If using Multiple MIDs, route to this processor (processor_id is obtained under Settings->Transaction Routing in the Control Panel).
customer_receipt If set to true, when the customer is charged, they will be sent a transaction receipt.
Values: 'true' or 'false'
source_transaction_id Specifies a payment gateway transaction id in order to associate payment information with a Subscription record.
* Always required
** Required for credit card transactions
*** Required for ACH transactions

Adding a Custom Subscription

Variable Name Description
recurring* Add a custom recurring subscription that is NOT associated with an existing plan
Value: 'add_subscription'
plan_payments* The number of payments before the recurring plan is complete.
Notes: '0' for until canceled
plan_amount* The plan amount to be charged each billing cycle.
Format: x.xx
day_frequency** How often, in days, to charge the customer. Cannot be set with 'month_frequency' or 'day_of_month'.
month_frequency*** How often, in months, to charge the customer. Cannot be set with 'day_frequency'. Must be set with 'day_of_month'.
Values: 1 through 24
day_of_month*** The day that the customer will be charged. Cannot be set with 'day_frequency'. Must be set with 'month_frequency'.
Values: 1 through 31 - for months without 29, 30, or 31 days, the charge will be on the last day
start_date The first day that the customer will be charged.
Format: YYYYMMDD
payment_token The tokenized version of the customer's card or check information. This will be generated by Collect.js and is usable only once.
ccnumber**** Credit card number.
ccexp**** Credit card expiration.
Format: MMYY
payment The type of payment.
Default: 'creditcard'
Values: 'creditcard' or 'check'
checkname The name on the customer's ACH account.
checkaccount The customer's bank account number.
checkaba The customer's bank routing number.
account_type The customer's ACH account type.
Values: 'checking' or 'savings'
account_holder_type The customer's ACH account entity.
Values: 'personal' or 'business'
sec_code ACH standard entry class codes.
Values: 'PPD', 'WEB', 'TEL', or 'CCD'
first_name Cardholder's first name.
Legacy variable includes: firstname
last_name Cardholder's last name.
Legacy variable includes: lastname
address1 Card billing address.
city Card billing city
state Card billing state.
zip Card billing postal code.
country Card billing country code.
phone Billing phone number.
email Billing email address.
company Cardholder's company.
address2 Card billing address, line 2.
fax Billing fax number.
orderid Order ID
order_description Order Description
Legacy variable includes: orderdescription
merchant_defined_field_# Can be set up in merchant control panel under 'Settings'->'Merchant Defined Fields'.
ponumber Cardholder's purchase order number.
processor_id If using Multiple MIDs, route to this processor (processor_id is obtained under Settings->Transaction Routing in the Control Panel).
customer_receipt If set to true, when the customer is charged, they will be sent a transaction receipt.
Values: 'true' or 'false'
source_transaction_id Specifies a payment gateway transaction id in order to associate payment information with a Subscription record.
* Always required
** Required unless 'month_frequency' and 'day_of_month' is set.
*** Required unless 'day_frequency' is set.
**** Required for credit card transactions
Required for ACH transactions

Update a Subscription's Billing Information

Variable Name Description
recurring* Update the subscription's billing information.
Value: 'update_subscription'
subscription_id* The subscription ID that will be updated.
* Always required

Delete a Subscription

Variable Name Description
recurring* Delete the subscription. Customer will no longer be charged.
Value: 'delete_subscription'
subscription_id* The subscription ID that will be deleted.
* Always required

Customer Vault Variables
Direct Post API

POST URL

POST URL: https://integratepayments.transactiongateway.com/api/transact.php

Add/Update Customer Record

Variables Description
customer_vault* Add/Update a secure customer vault record.
Values: 'add_customer' or 'update_customer'
customer_vault_id Specifies a customer vault id. If not set, the payment gateway will randomly generate a customer vault id.
billing_id Billing id to be assigned or updated. If none is provided, one will be created or the billing id with priority '1' will be updated.
security_key* API Security Key assigned to a merchant account.
New keys can be generated from the merchant control panel in Settings > Security Keys
payment_token The tokenized version of the customer's card or check information. This will be generated by Collect.js and is usable only once.
ccnumber** Credit card number.
ccexp** Credit card expiration.
Format: MMYY
checkname*** The name on the customer's ACH account.
checkaba*** The customer's bank routing number.
checkaccount*** The customer's bank account number.
account_holder_type The customer's ACH account entity.
Values: 'personal' or 'business'
account_type The customer's ACH account type.
Values: 'checking' or 'savings'
sec_code ACH standard entry class codes.
Values: 'PPD', 'WEB', 'TEL', or 'CCD'
currency Set transaction currency.
payment Set payment type to ACH or credit card.
Values: 'creditcard' or 'check'
orderid Order id
order_description Order Description
Legacy variable includes: orderdescription
merchant_defined_field_# Can be set up in merchant control panel under 'Settings'->'Merchant Defined Fields'.
Format: merchant_defined_field_1=Value
first_name Cardholder's first name.
Legacy variable includes: firstname
last_name Cardholder's last name.
Legacy variable includes: lastname
address1 Card billing address.
city Card billing city
state Card billing state.
zip Card billing postal code.
country Card billing country code.
phone Billing phone number.
email Billing email address.
company Cardholder's company.
address2 Card billing address, line 2.
fax Billing fax number.
shipping_id Shipping entry id. If none is provided, one will be created or the billing id with priority '1' will be updated.
shipping_firstname Shipping first name.
shipping_lastname Shipping last name.
shipping_company Shipping company.
shipping_address1 Shipping address.
shipping_address2 Shipping address, line 2.
shipping_city Shipping city
shipping_state Shipping state.
shipping_zip Shipping postal code.
shipping_country Shipping country code.
shipping_phone Shipping phone number.
shipping_fax Shipping fax number.
shipping_email Shipping email address.
source_transaction_id Specifies a payment gateway transaction id in order to associate payment information with a Customer Vault record.
* Always required
** Required for credit card transactions
*** Required for ACH transactions

Customer Vault initiated Sale/Auth/Credit/Offline

Variable Description
security_key* API Security Key assigned to a merchant account.
New keys can be generated from the merchant control panel in Settings > Security Keys
customer_vault_id* Specifies a customer vault id.
amount Total amount to be charged. For validate, the amount must be omitted or set to 0.00.
Format: x.xx
currency The transaction currency. Format: ISO 4217
processor_id If using Multiple MIDs, route to this processor (processor_id is obtained under Settings->Transaction Routing in the Control Panel).
descriptor Set payment descriptor on supported processors.
descriptor_phone Set payment descriptor phone on supported processors.
order_description Order description.
Legacy variable includes: orderdescription
orderid Order ID
Stored Credentials (CIT/MIT)
initiated_by Who initiated the transaction.
Values: 'customer' or 'merchant'
initial_transaction_id Original payment gateway transaction id.
stored_credential_indicator The indicator of the stored credential.
Values: 'stored' or 'used'
Use 'stored' when processing the initial transaction in which you are storing a customer's payment details (customer credentials) in the Customer Vault or other third-party payment storage system.
Use 'used' when processing a subsequent or follow-up transaction using the customer payment details (customer credentials) you have already stored to the Customer Vault or third-party payment storage method.
* Always required

Delete Customer Record

Variable Description
customer_vault* Deletes a secure customer vault record.
Values: 'delete_customer'
customer_vault_id* Specifies a customer vault id.
security_key* API Security Key assigned to a merchant account.
New keys can be generated from the merchant control panel in Settings > Security Keys
* Always required

Notes:

  • If you do not pass a customer_vault_id, our system will randomly generate one. If you include a customer_id and customer_vault_id, they must match.
  • You can only pass Credit Card or Electronic Check transaction variables.

Partial Payment Information
Direct Post API

Request Details

Variable Description
partial_payment_id Unique identifier returned when making the original transaction. This should only be used for secondary transactions.
partial_payments This variable allows the following two values to be passed to it:
settle_partial: Settles any amount of tender collected (captured partial auth's and approved partial sales) at cut off.
payment_in_full: Required that any split tendered transaction is collected in-full before settlement gets initiated.
type This variable can be passed the value 'complete_partial_payment' which will complete a payment_in_full transaction that has not been collected in full. This allows industries that require payment_in_full but subsequently decide to still settle the transaction even though it has not been collected in full.

Response Details

Variable Description
partial_payment_id A numeric identifier which is used when submitting subsequent transactions.
partial_payment_balance Returns the payment's remaining balance.
amount_authorized Provides the amount that was authorized.

Examples

Example 1: In this request, if nothing more was done, a transaction for 30.00 would settle at the next cut-off.

Request ...type=sale&partial_payments=settle_partial&ccnumber=4111111111111111&ccexp=1016&amount=100.00...
Response ...response=1&partial_payment_id=123456789&partial_payment_balance=70.00&amount_authorized=30.00...

Example 2: In this request, payment_in_full was required and two transaction were collected - this transaction would settle at the next cut-off.

Request 1 ...type=sale&partial_payments=payment_in_full&ccnumber=4111111111111111&ccexp=1016&amount=100.00...
Response 1 ...response=1&partial_payment_id=123456789&partial_payment_balance=70.00&amount_authorized=30.00...
Request 2 ...type=sale&partial_payment_id=123456789&partial_payments=payment_in_full&ccnumber=4000000000000002&ccexp=1016&amount=70.00...
Response 2 ...response=1& partial_payment_id=123456789&partial_payment _balance=0.00&amount_authorized=70.00...

Example 3: In this example, payment_in_full was required and two transactions were attempted, but only one collected. The merchant decided to force it out anyways - this transaction would settle at the next cut-off.

Request 1 ...type=sale&partial_payments=payment_in_full&ccnumber=4111111111111111&ccexp=1016&amount=100.00...
Response 1 ...response=1&partial_payment_id=123456789&partial_payment_balance=70.00&amount_authorized=30.00...
Request 2 ...type=sale&partial_payment_id=123456789&partial_payments=payment_in_full&ccnumber=4000000000000002&ccexp=1016&amount=70.00...
Response 2 ...response=2&partial_payment_id=123456789&partial_payment_balance=70.00&amount_authorized=70.00...
Request 3 ...type=complete_partial_payment& partial_payment_id=123456789&partial_payments=payment_in_full&amount=70.00...
Response 3 ...response=1& partial_payment_id=123456789&partial_payment_balance=0.00&amount_authorized=70.00...

Credential on File Information
Direct Post API

Please note the below is meant to be a guide for how the platform supports CIT and MIT use cases. This is not meant to be an exhaustive list of items needed in order to be compliant. For more information on CIT/MIT compliance, please consult your processor.

Credential on File regulations apply any time data is stored to process future purchases for a cardholder.

Customer vs Merchant Initiated

When a customer is actively engaged in checkout - either physical present in a store, or checking out online in their browser, that is a Customer Initiated Transaction (CIT).

When the customer isn’t actively engaged, but has given permission for their card to be charged, that is a Merchant Initiated Transaction (MIT). In order for a merchant to submit a Merchant Initiated Transaction, a Customer Initiated transaction is required first.

Overview

A cardholder’s consent is required for the initial storage of credentials. When a card is stored, an initial transaction should be submitted (Validate, Sale, or Auth) with the correct credential-on-file type. The transaction must be approved (not declined or encounter an error.) Then, store the transaction ID of the initial customer initiated transaction. The transaction ID must then be submitted with any follow up transactions (MIT or CIT.)

Credential on File types include Recurring, Installment, and Unscheduled types.

For simplicity - we are using the Direct Post API variables. These match the names of the Batch Upload, Collect.js, or the Browser Redirect APIs. The Three-Step API follows the same pattern, and the variables should be submitted on Step 1.

Request Details

Variable Description
initiated_by Who initiated the transaction.
Values: 'customer' or 'merchant'
initial_transaction_id Original payment gateway transaction id.
stored_credential_indicator The indicator of the stored credential.
Values: 'stored' or 'used'
Use 'stored' when processing the initial transaction in which you are storing a customer's payment details (customer credentials) in the Customer Vault or other third-party payment storage system.
Use 'used' when processing a subsequent or follow-up transaction using the customer payment details (customer credentials) you have already stored to the Customer Vault or third-party payment storage method.

Response Details

Variable Description
cof_supported Credential on File support indicator specific to the transaction.
Values: 'stored' or 'used'
Value will be 'stored' if CIT/MIT transaction was sent to a processor that supports the feature.
Value will be 'used' if CIT/MIT transaction was sent to a processor that does not support the feature or if a merchant-initiated transaction cannot occur due to Cross-Processor limitations.

Please Note: For Three-Step Redirect transactions, the request details must be sent in Step 1 and the ‘cof-supported’ element will be returned in the response of Step 3.

Recurring:

A transaction in a series of transactions that uses a stored credential and are processed at fixed, regular intervals (not to exceed one year between transactions), and represents cardholder agreement for the merchant to initiate future transactions for the purchase of goods or services provided at regular intervals.

If a customer is signing up for a recurring subscription, the merchant is expected to send "an initial recurring transaction" every time the customer signs up for a new recurring subscription.

For an initial transaction:

  • For a free trial, the initial transaction will be a validate transaction type (or auth if validate is not supported.)
  • If the customer is being charged immediately for a product, the initial transaction will be a sale or an authorization for the correct amount.

Either transaction MUST INCLUDE three items:

  • billing_method=recurring
  • initiated_by=customer
  • stored_credential_indicator=stored

Examples

Example 1: In this request, an initial recurring sale is sent and an approved transaction is returned in the response. Store this transaction for the follow up request.

Request ...type=sale&billing_method=recurring&initiated_by=customer&stored_credential_indicator=stored...
Response ...response=1&responsetext=Approved&transactionid=1234567890...

The transaction ID would be stored and submitted on follow up transactions. The follow up transaction(s) would include:

  • billing_method=recurring
  • initiated_by=merchant
  • stored_credential_indicator=used
  • initial_transaction_id=XXXXXXXXXX

Example 2: In this request, the subsequent merchant initiated sale is processed using the stored transaction from Example 1.

Request ...type=sale&billing_method=recurring&initiated_by=merchant&stored_credential_indicator=used&initial_transaction_id=1234567890...
Response ...response=1&responsetext=Approved&transactionid=1234567891...

Please Note: This transaction ID cannot be used for "unscheduled" or "installment" credential-on-file transactions.

Installment:

An “installment” transaction is a series of transactions that uses a stored credential and represents cardholder agreement with the merchant to initiate one or more future transactions over a period of time for a single purchase of goods or services.

Installment transactions work just like Recurring in that you need a customer initiated transaction for a subsequent installment transaction. The difference is the billing_method will be “installment”.

The customer initiated transaction MUST INCLUDE at least three items (* recommended to send, if available):

  • billing_method=installment
  • initiated_by=customer
  • stored_credential_indicator=stored
  • * billing_total
  • * billing_number (Values: 0-99)

Examples

Example 3: In this request, an initial installment sale is sent and an approved transaction is returned in the response. Store this transaction for the follow up request.

Request ...type=sale&billing_method=installment&initiated_by=customer&stored_credential_indicator=stored&billing_total=100.00&billing_number=1&amount=25.00...
Response ...response=1&responsetext=Approved&transactionid=1234567890…

The transaction ID would be stored and submitted on follow up transactions. The follow up transaction(s) would include (* recommended to send, if available):

  • billing_method=installment
  • initiated_by=merchant
  • stored_credential_indicator=used
  • initial_transaction_id=XXXXXXXXXX
  • * billing_total
  • * billing_number

Example 4: In this request, the subsequent merchant initiated sale is processed using the stored transaction from Example 3.

Request ...type=sale&billing_method=installment&initiated_by=merchant&stored_credential_indicator=used&initial_transaction_id=1234567890&billing_total=100.00&billing_number=1&amount=25.00...
Response ...response=1&responsetext=Approved&transactionid=1234567891…

Please Note: This transaction ID cannot be used for "unscheduled" or "recurring" card on file transactions.

Unscheduled Credential On File:

For payments that aren’t recurring or installment - there are unscheduled options as well.

The first customer initiated transaction will include these two items (no billing method):

  • initiated_by=customer
  • stored_credential_indicator=stored

Examples

Example 5: In this request, an initial unscheduled sale is sent and an approved transaction is returned in the response. Store this transaction for the follow up request.

Request ...type=sale&initiated_by=customer&stored_credential_indicator=stored...
Response ...response=1&responsetext=Approved&transactionid=1234567890...

The transaction ID can be used, without a billing method, for a customer initiated or merchant initiated transaction.

Please Note: The transaction ID cannot be used for a “recurring” or “installment” transaction.

Unscheduled, Customer Initiated: A card-absent transaction initiated by the cardholder where the cardholder does not need to enter their card details as the merchant uses the payment credential previously stored by the cardholder to perform the transaction. Examples include a transaction using customer’s merchant profile or digital wallet.

This is your typical shopping cart scenario where the customer checks out without having to re-enter their card details.

The follow up transaction(s) would include:

  • initiated_by=customer
  • stored_credential_indicator=used

Example 6: In this request, a subsequent unscheduled sale is sent and an approved transaction is returned in the response.

Request ...type=sale&initiated_by=customer&stored_credential_indicator=used...
Response ...response=1&responsetext=Approved&transactionid=1234567891...

Unscheduled, Merchant Initiated: A transaction using a stored credential for a fixed or variable amount that does not occur on a scheduled or regularly occurring transaction date, where the cardholder has provided consent for the merchant to initiate one or more future transactions. An example of this transaction is an account auto-top up transaction.

An example of an account auto-top up would be a customer with an account with a balance. When that balance gets low, the customer's card is charged automatically, without the customer's involvement.

The follow up transaction(s) would include:

  • initiated_by=merchant
  • stored_credential_indicator=used
  • initial_transaction_id=XXXXXXXXXX

Example 7: In this request, a subsequent unscheduled sale is sent and an approved transaction is returned in the response.

Request ...type=sale&initiated_by=merchant&stored_credential_indicator=used&initial_transaction_id=1234567890...
Response ...response=1&responsetext=Approved&transactionid=1234567892...

Appendix 1: Recommend Further Reading:

If there is any question where a transaction type falls, we recommend reviewing the official card brand documentation. Visa’s guidelines are the most stringent, and generally if you follow those guidelines, you’ll also be compliant for MasterCard, American Express and Discover.

Visa:
https://usa.visa.com/dam/VCOM/global/support-legal/documents/stored-credential-transaction-framework-vbs-10-may-17.pdf

MasterCard:
https://www.mastercard.us/en-us/consumers/offers-promotions/credential-on-file-payments.html

Transaction Response Variables
Direct Post API

Standard Response

Variable Name Description
response 1 = Transaction Approved
2 = Transaction Declined
3 = Error in transaction data or system error
responsetext Textual response
authcode Transaction authorization code.
transactionid Payment gateway transaction id.
avsresponse AVS response code (See Appendix 1).
cvvresponse CVV response code (See Appendix 2).
orderid The original order id passed in the transaction request.
response_code Numeric mapping of processor responses (See Appendix 3).
emv_auth_response_data This will optionally come back when any chip card data is provided on the authorization. This data needs to be sent back to the SDK after an authorization.

Testing Information
Direct Post API

Transaction testing credentials

Transactions can be tested using one of two methods. First, transactions can be submitted to any merchant account that is in test mode. Keep in mind that if an account is in test mode, all valid credit cards will be approved but no charges will actually be processed.

The Payment Gateway demo account can also be used for testing at any time. Please use the following security key for testing with this account:

security_key: 6457Thfj624V5r7WUwc5v6a68Zsd6YEm

Transaction POST URL

Transaction details should be POST'ed to the following URL:

POST URL: https://integratepayments.transactiongateway.com/api/transact.php

Test Data

Transactions can be submitted using the following information:

Visa: 4111111111111111
MasterCard: 5431111111111111
Discover: 6011601160116611
American Express: 341111111111111
Diner's Club: 30205252489926
JCB: 3541963594572595
Maestro: 6799990100000000019
Credit Card Expiration: 10/25
account (ACH): 123123123
routing (ACH): 123123123

Triggering Errors in Test Mode

  • To cause a declined message, pass an amount less than 1.00.
  • To trigger a fatal error message, pass an invalid card number.
  • To simulate an AVS match, pass 888 in the address1 field, 77777 for zip.
  • To simulate a CVV match, pass 999 in the cvv field.

Appendix 1
Direct Post API

AVS Response Codes

X Exact match, 9-character numeric ZIP
Y Exact match, 5-character numeric ZIP
D Exact match, 5-character numeric ZIP
M Exact match, 5-character numeric ZIP
2 Exact match, 5-character numeric ZIP, customer name
6 Exact match, 5-character numeric ZIP, customer name
A Address match only
B Address match only
3 Address, customer name match only
7 Address, customer name match only
W 9-character numeric ZIP match only
Z 5-character ZIP match only
P 5-character ZIP match only
L 5-character ZIP match only
1 5-character ZIP, customer name match only
5 5-character ZIP, customer name match only
N No address or ZIP match only
C No address or ZIP match only
4 No address or ZIP or customer name match only
8 No address or ZIP or customer name match only
U Address unavailable
G Non-U.S. issuer does not participate
I Non-U.S. issuer does not participate
R Issuer system unavailable
E Not a mail/phone order
S Service not supported
0 AVS not available
O AVS not available
B AVS not available

Appendix 2
Direct Post API

CVV Response Codes

M CVV2/CVC2 match
N CVV2/CVC2 no match
P Not processed
S Merchant has indicated that CVV2/CVC2 is not present on card
U Issuer is not certified and/or has not provided Visa encryption keys

Appendix 3
Direct Post API

Result Code Table

100 Transaction was approved.
200 Transaction was declined by processor.
201 Do not honor.
202 Insufficient funds.
203 Over limit.
204 Transaction not allowed.
220 Incorrect payment information.
221 No such card issuer.
222 No card number on file with issuer.
223 Expired card.
224 Invalid expiration date.
225 Invalid card security code.
226 Invalid PIN.
240 Call issuer for further information.
250 Pick up card.
251 Lost card.
252 Stolen card.
253 Fraudulent card.
260 Declined with further instructions available. (See response text)
261 Declined-Stop all recurring payments.
262 Declined-Stop this recurring program.
263 Declined-Update cardholder data available.
264 Declined-Retry in a few days.
300 Transaction was rejected by gateway.
400 Transaction error returned by processor.
410 Invalid merchant configuration.
411 Merchant account is inactive.
420 Communication error.
421 Communication error with issuer.
430 Duplicate transaction at processor.
440 Processor format error.
441 Invalid transaction information.
460 Processor feature not available.
461 Unsupported card type.

Collect.js

<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<!-- Collect.js is loaded -->
<script src="https://www.canyonpay.com/assets/Collect.js" data-tokenization-key="5mN8N7-jhr55W-N22pxX-uAW2s9">
</script>


<body>
  <h2 class="pageTitle"><span>Lightbox Example</span></h2>

  <form class="theForm">
    <div class="formInner">
      <div class="form-group">
        <input type="text" class="form-control" placeholder="First Name" name="fname" value="John" autofocus>
      </div>
      <div class="form-group">
        <input type="text" class="form-control" placeholder="Last Name" name="lname" value="Smith">
      </div>
      <div class="form-group">
        <input type="text" class="form-control" placeholder="Street Address" name="address1" value="123 Collect Js.">
      </div>
      <div class="form-group">
        <input type="text" class="form-control" placeholder="City" name="city" value="SAQ-A">
      </div>
      <div class="form-group">
        <input type="state" class="form-control" placeholder="State" name="state" value="IL">
      </div>
      <div class="form-group">
        <input type="text" class="form-control" placeholder="Zip code" name="zip" value="12345">
      </div>
    </div>

    <input type="submit" id="payButton" value="Pay $5" class="btn btn-primary btn-block">

  </form>

  <div id="paymentTokenInfo"></div>

</body>
                
html {
  font-family: 'Abel';
}

.pageTitle {
  text-align: center;
  margin-top: 20px;
  font-size: 40px;
  font-family: "Domine" !important;
}

.form-group {
  width: 290px;
}

.formInner {
  width: 600px;
  max-width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 20px auto;
}

#payButton {
  width: 290px;
  display: block;
  margin: 20px auto;
  height: 50px !important;
  font-size: 20px;
  background-color: #1AD18E;
  border-color: #1AD18E;
  box-shadow: 0 3px 10px #bbbbbb;
}

#payButton:hover {
  background-color: #19C687;
  border-color: #19C687;
  box-shadow: 0 3px 4px #bbbbbb;
}

#payButton:active {
  opacity: 0.7;
}

.form-control {
  border: 3px solid #ffffff !important;
  box-shadow: 0 2px 8px #dddddd !important;
  font-family: 'Abel';
}

.form-control:hover {
  box-shadow: 0 2px 4px #dddddd;
}

.form-control:focus {
  box-shadow: 0 2px 4px #dddddd !important;
  border: 3px solid #1AD18E !important;
}

#paymentTokenInfo {
  display: block;
  width: 600px;
  margin: 30px auto;
}

@media only screen and (max-width: 600px) {
  .pageTitle {
    font-size: 30px;
  }

  .theForm {
    width: 300px;
    max-width: 90%;
    margin: auto;
  }

  .form-group {
    width: 100%;
  }

  #paymentTokenInfo {
    width: 100%;
  }
}
                
// This prints out the contents of the payment token to the page.
document.addEventListener('DOMContentLoaded', function () {
  CollectJS.configure({
    'paymentType': 'cc',
    'callback': function (response) {
      document.getElementById("paymentTokenInfo").innerHTML =
        '<b>Payment Token:</b> ' + response.token +
        '<br><b>Card:</b> ' + response.card.number +
        '<br><b>BIN/EIN:</b> ' + response.card.bin +
        '<br><b>Expiration:</b> ' + response.card.exp +
        '<br><b>Hash:</b> ' + response.card.hash +
        '<br><b>Card Type:</b> ' + response.card.type +
        '<br><b>Check Account Name:</b> ' + response.check.name +
        '<br><b>Check Account Number:</b> ' + response.check.account +
        '<br><b>Check Account Hash:</b> ' + response.check.hash +
        '<br><b>Check Routing Number:</b> ' + response.check.aba;
    }
  });
});
                

Overview

Collect.js is a JavaScript framework that allows merchants to collect sensitive payment information from their customers without exposing their website to the sensitive information. This can be done while allowing merchants to retain full control over the look and feel of their checkout experience.

This is a data collection and tokenization system, not a full payments API, so you can use this in conjunction with an existing transaction API (Direct Post) to submit transactions or use other gateway services that utilize payment information.

Usage

Collect.js is designed to be flexible, and its implementation can be as simple as pasting a single script tag to your checkout page, or it can be customized to interact with your website however you’d like.

Authentication

Authentication is done via a "tokenization key" that you can generate in your merchant control panel under the "Security Keys" settings page. Select "Tokenization" for the key type.

This tokenization key can only be used with Collect.js and will not work with any other APIs. Similarly, any API keys already created will not work with Collect.js.

This key will be visible to customers in your website’s source code, so please make sure you only use the tokenization key here.

The Payment Token

This is a new variable added to the Direct Post API that should be used in conjunction with this tool. This is what Collect.js will return to your website and it takes the place of the sensitive card or bank account information. It will look something like this:

                
3455zJms-7qA2K2-VdVrSu-Rv7WpvPuG7s8
                
            

This variable can be used in place of the existing ccnumber, ccexp, and cvv variables we have today. For ACH transactions (details below) it can be used in place of checkname, checkaba, and checkaccount.

The payment token can only be used once, and will expire after 24 hours if it is not used at all.

The payment token will also work when adding customers to the Customer Vault or recurring subscriptions. Just use “payment_token” where you were using the credit card and ACH account information before.

For example, if you would previously send this string:

                
type=sale&amount=3.00&ccnumber=4111111111111111&ccexp=1020&cvv=123
                
            

Or:

                
type=sale&amount=3.00&checkname=Jane Doe&checkaba=123123123&checkaccount=123123123
                
            

You could now send this:

                
type=sale&amount=3.00&payment_token=3455zJms-7qA2K2-VdVrSu-Rv7WpvPuG7s8
                
            

Test Tokens

If you would like to test using the payment token without using Collect.js to create one, you can use the below tokens to return test credit card and bank account information.

Payment Token Value Test Data
00000000-000000-000000-000000000000 Card: 4111111111111111, Expiration: October 2025, CVV: 999
11111111-111111-111111-111111111111 ABA: 123123123, Account: 123123123, Name: Jane Doe

Integration Types

Collect.js supports two different ways to integrate with your site. Both offer the same basic functionality and security, so you can choose based on your interface and design requirements,

Lightbox Integration


<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<!-- Collect.js is loaded -->
<script src="https://www.canyonpay.com/assets/Collect.js" data-tokenization-key="5mN8N7-jhr55W-N22pxX-uAW2s9">
</script>


<body>
  <h2 class="pageTitle"><span>Lightbox Example</span></h2>

  <form class="theForm">
    <div class="formInner">
      <div class="form-group">
        <input type="text" class="form-control" placeholder="First Name" name="fname" value="John" autofocus>
      </div>
      <div class="form-group">
        <input type="text" class="form-control" placeholder="Last Name" name="lname" value="Smith">
      </div>
      <div class="form-group">
        <input type="text" class="form-control" placeholder="Street Address" name="address1" value="123 Collect Js.">
      </div>
      <div class="form-group">
        <input type="text" class="form-control" placeholder="City" name="city" value="SAQ-A">
      </div>
      <div class="form-group">
        <input type="state" class="form-control" placeholder="State" name="state" value="IL">
      </div>
      <div class="form-group">
        <input type="text" class="form-control" placeholder="Zip code" name="zip" value="12345">
      </div>
    </div>

    <input type="submit" id="payButton" value="Pay $5" class="btn btn-primary btn-block">

  </form>

  <div id="paymentTokenInfo"></div>

</body>
                
html {
  font-family: 'Abel';
}

.pageTitle {
  text-align: center;
  margin-top: 20px;
  font-size: 40px;
  font-family: "Domine" !important;
}

.form-group {
  width: 290px;
}

.formInner {
  width: 600px;
  max-width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 20px auto;
}

#payButton {
  width: 290px;
  display: block;
  margin: 20px auto;
  height: 50px !important;
  font-size: 20px;
  background-color: #1AD18E;
  border-color: #1AD18E;
  box-shadow: 0 3px 10px #bbbbbb;
}

#payButton:hover {
  background-color: #19C687;
  border-color: #19C687;
  box-shadow: 0 3px 4px #bbbbbb;
}

#payButton:active {
  opacity: 0.7;
}

.form-control {
  border: 3px solid #ffffff !important;
  box-shadow: 0 2px 8px #dddddd !important;
  font-family: 'Abel';
}

.form-control:hover {
  box-shadow: 0 2px 4px #dddddd;
}

.form-control:focus {
  box-shadow: 0 2px 4px #dddddd !important;
  border: 3px solid #1AD18E !important;
}

#paymentTokenInfo {
  display: block;
  width: 600px;
  margin: 30px auto;
}

@media only screen and (max-width: 600px) {
  .pageTitle {
    font-size: 30px;
  }

  .theForm {
    width: 300px;
    max-width: 90%;
    margin: auto;
  }

  .form-group {
    width: 100%;
  }

  #paymentTokenInfo {
    width: 100%;
  }
}
                
// This prints out the contents of the payment token to the page.
document.addEventListener('DOMContentLoaded', function () {
  CollectJS.configure({
    'paymentType': 'cc',
    'callback': function (response) {
      document.getElementById("paymentTokenInfo").innerHTML =
        '<b>Payment Token:</b> ' + response.token +
        '<br><b>Card:</b> ' + response.card.number +
        '<br><b>BIN/EIN:</b> ' + response.card.bin +
        '<br><b>Expiration:</b> ' + response.card.exp +
        '<br><b>Hash:</b> ' + response.card.hash +
        '<br><b>Card Type:</b> ' + response.card.type +
        '<br><b>Check Account Name:</b> ' + response.check.name +
        '<br><b>Check Account Number:</b> ' + response.check.account +
        '<br><b>Check Account Hash:</b> ' + response.check.hash +
        '<br><b>Check Routing Number:</b> ' + response.check.aba;
    }
  });
});
                

The "lightbox" integration displays all sensitive payment fields in a single "pop-up" style display. All the entry and validation of payment data occurs within this single box; once valid information is provided, an event is provided for your page to capture the finished Payment Token.

Inline Integration


The "inline" integration allows you to seamlessly build Collect.js into your payment form. This solution allows you to create a payment form that looks and feels exactly like your website, but without the need for your service to handle any sensitive payment information.

This works by creating iframes on your website for each credit card or electronic check field you need your customers to fill out. Using our custom "style sniffer" these fields will typically look exactly like the other fields on the page. If you want to just style them however you want, you can do that too by passing in custom CSS.

Simple Lightbox Implementation

See the Simple Example for a basic web page using this implementation.

The simplest way to integrate is by pasting in the following script tag to your web page (preferably in the header) where you’ll be collecting payments:

                
<script src="https://www.canyonpay.com/assets/Collect.js" data-tokenization-key="your-token-key-here"></script>
                
            

With this script, you just need to add a button with the ID of "payButton" to your page inside a form where you ask for the customer’s information (name, address, email, etc.) You should make this button somewhere that indicates to the customer that they will be prompted to enter their card information and check out. Collect.js will find this button and display the below form in a lightbox over your website.

The customer will enter their card information and when they submit this mini-form, the lightbox will disappear, a hidden field will be inserted into your form with the "payment_token" value, and your form will be submitted.

You can then submit the transaction to the gateway with the Direct Post API using the “payment_token” variable.

Advanced Lightbox Implementation

See the advanced HTML example and advanced JavaScript example files for examples.

If you want to have a little more control over the default behavior, you can pass in additional data elements in the script tag. Here’s an example using all the available variables:


<script
        src="https://www.canyonpay.com/assets/Collect.js"
        data-tokenization-key="your-token-key-here"
        data-payment-selector=".customPayButton"
        data-primary-color="#ff288d"
        data-theme="bootstrap"
        data-secondary-color="#ffe200"
        data-button-text="Submit the Payment"
        data-instruction-text="Enter Card Information"
        data-payment-type="cc"
        data-field-cvv-display=”hide"
></script>
                

Configuration Variables

Variable Format Behavior
data-tokenization-key String Authenticates the request
data-payment-selector String Tells Collect.js what class or id value will trigger the lightbox
Default: "#payButton"
data-primary-color String The HEX value for the color of the submit button in the lightbox
Default: "#007BFF"
data-theme String ("bootstrap" or "material") The version of the payment form customers will see. All available themes will use the primary and secondary colors provided.
Default: "bootstrap"
data-secondary-color String The HEX value for the color of the lightbox border
Default: "#282828"
data-button-text String The text that will display on the submit button in the lightbox
Default: "Submit Payment"
data-instruction-text String The text that will display above the payment fields. Custom text should be short so as not to overlap with other elements in the lightbox.
Default: "Please enter payment info"
data-payment-type String ("cc" or "ck") Whether the lightbox shows credit card or check fields ("cc" for credit cards or "ck" for checks)
Default: "cc"
data-field-cvv-display String ("show", "hide", or "required") Whether the CVV field is required ("required"), optional ("show"), or not displayed at all ("hide"). Also supported as data-field-cvv for legacy users.
Default: "required"

Collect.js Functions

Function Name Parameters Description
configure Object Call this when you’d like to reconfigure Collect.js. Collect.js will try to run this automatically on page load, but you can run it manually to change the configuration at any time.

This method optionally accepts an object with all configuration variables you’re using for Collect.js.
startPaymentRequest Event Call this to bring up the lightbox with the secure payment form for the customer to fill out. If you are using the “payButton” ID or custom payment selector, this will automatically be called when the customer clicks that element on the page.

This method accepts an event object as an optional parameter and will call the provided callback function with a token response and the optional event.
closePaymentRequest Call this to dismiss the lightbox. This replicates the behavior of the user clicking the “close” button inside the lightbox. No card or checking information will be saved.

You may also choose to configure Collect.js directly in your JavaScript, in which case you can do all of the above, and also implement a callback function that will execute when the customer submits the lightbox form. The payment token value will be returned in a "response" variable that you can do whatever you’d like with.

{
    card: {
        number: "411111******1111",
        bin: "411111",
        exp: "1028",
        hash: "abcdefghijklmnopqrstuv1234567890",
    },
    check: {
        name: null,
        account: null,
        hash: null,
        aba: null,
    },
    token: "3455zJms-7qA2K2-VdVrSu-Rv7WpvPuG7s8",
    initiatedBy: Event,
}
                    

This implementation method allows for additional changes to the look and feel to better match your website's UI

Expert Lightbox Implementation

If you have a webpage where you would like the lightbox to trigger without an element getting clicked, then you can call the following function:

                
CollectJS.startPaymentRequest(event)
                
            

This function will trigger the lightbox to show up and request payment details. If you wish to change any options, this should be done before calling this function since changes after this point wont affect the lightbox.

This function optionally receives an event object. If an event is passed into the startPaymentRequest function, that same event will exist in the callback's response variable under "response.initiatedBy". This can be used to track what event started the payment request and the next steps.

{
    card: {
        number: null,
        bin: null,
        exp: null,
        hash: null,
    },
    check: {
        name: "Jane Doe",
        account: "1******23",
        hash: "abcdefghijklmnopqrstuv1234567890",
        aba: "123123123",
    },
    token: "3455zJms-7qA2K2-VdVrSu-Rv7WpvPuG7s8",
    initiatedBy: Event,
}
                    

If you wish to close the payment request without waiting for the user to click the close button, you can call the function:

                
CollectJS.closePaymentRequest()
                
            

This function will remove the lightbox from the page. No other functions will trigger from this function being called, including the callback.

Note that this implementation also requires you to include the standard script tag on the page as well.

Simple Integration Implementation

See the Simple Inline Example for a basic web page using this implementation.

While the Inline integration model offers many customizable options, you can also get started quickly with a basic form. First, install the following JavaScript on your payment form page, preferably in the HEAD element:

                
<script src="https://www.canyonpay.com/assets/Collect.js" data-tokenization-key="your-token-key-here" data-variant="inline"></script>
                
            

This script assumes that you've set up a payment form already. The form can be laid out however you'd like, but there should be block-level elements (div, for example) where the sensitive payment info will be collected. The following IDs are expected to be used in place of standard form inputs:

For Credit Card Payments

  • ccnumber (Credit card number)
  • ccexp (Credit card expiration date)
  • cvv (CVV)

For Electronic Check Payments

  • checkname (Checking account name)
  • checkaccount (Checking account number)
  • checkaba (Routing number)

This is a very basic form that has integrated Inline Collect.js.

                
<form>
    <input type="text" id="first_name">
    <input type="text" id="last_name">
    <input type="text" id="address">
    <div id="ccnumber"></div>
    <div id="ccexp"></div>
    <div id="cvv"></div>
    <input type="submit" id="payButton">
</form>
                
            

These elements will have iframes inserted into them, contents of which will be hosted by the gateway. They will be full width text fields and will use the style sniffer to match the rest of your page. The ID values let us know what field is collecting what information from the customer.

In addition to the empty fields, there must be a submit button in the form with an ID of "payButton." When the customer clicks this to submit the form, Collect.js will collect the data from all inline iframes and submit the form with a new "payment_token" value which is an encrypted version of the payment data.

After this form is submitted to your site, you can submit the data to the gateway via the Direct Post API. For example:

                
security_key: 3456h45k6b4k56h54kj6h34kj6445hj4
type: sale
amount: 4.00
payment_token: 3455zJms-7qA2K2-VdVrSu-Rv7WpvPuG7s8
first_name: Jane
last_name: Doe
address: 123 Main St.
                
            

Advanced Implementation Method

See the advanced HTML example and advanced JavaScript example files for examples.

If the simple implementation does not give you everything you need, then you can use the advanced implementation to customize the experience more to your liking. The options available are extensive, and you may use as many or as few as you want. Below is an example of using every variable possible.

                
<script
        src="https://www.canyonpay.com/assets/Collect.js"
        data-tokenization-key="your-token-key-here"
        data-variant="inline"
        data-payment-selector="#demoPayButton"
        data-style-sniffer="false"
        data-google-font="Montserrat:400"
        data-validation-callback = "(function (field, valid, message) {console.log(field + ': ' + valid + ' -- ' + message)})"
        data-custom-css='{
            "background-color": "#a0a0ff",
            "color": "#0000ff"
        }'
        data-invalid-css='{
            "background-color":"red",
            "color":"white"
        }'
        data-valid-css='{
            "background-color":"#d0ffd0",
            "color":"black"
        }'
        data-placeholder-css='{
            "background-color":"#808080",
            "color":"green"
        }'
        data-focus-css='{
            "background-color":"#202020",
            "color":"yellow"
        }'
        data-timeout-duration = "2000"
        data-timeout-callback = "(function() {console.log('Timeout reached')})
        data-fields-available-callback = "(function() {console.log('Collect.js has added fields to the form')})"
        data-field-ccnumber-selector = '#demoCcnumber'
        data-field-ccnumber-title = 'Card Number'
        data-field-ccnumber-placeholder = '0000 0000 0000 0000'
        data-field-ccexp-selector = '#demoCcexp'
        data-field-ccexp-title = 'Expiration Date'
        data-field-ccexp-placeholder = '00 / 00'
        data-field-cvv-display = 'required'
        data-field-cvv-selector = '#demoCvv'
        data-field-cvv-title = 'CVV Code'
        data-field-cvv-placeholder = '***'
        data-field-checkaccount-selector = '#demoCheckaccount'
        data-field-checkaccount-title = 'Account Number'
        data-field-checkaccount-placeholder = '000000000000'
        data-field-checkaba-selector = '#demoCheckaba'
        data-field-checkaba-title = 'Routing Number'
        data-field-checkaba-placeholder = '000000000'
        data-field-checkname-selector = '#demoCheckname'
        data-field-checkname-title = 'Account Name'
        data-field-checkname-placeholder = 'Customer Name'
></script>
                
            

Configuration Variables

Variable Format Behavior
data-tokenization-key String Authenticates the request
data-variant String ("inline" or "lightbox") Whether to use "inline" or "lightbox" integration (required for inline integration)
Default: "lightbox"
data-payment-selector String Tells Collect.js what class or id value will trigger the form submission
Default: "#payButton"
data-style-sniffer String ("true" or "false") Whether Collect.js should try to calculate the style of form fields in your current form and use that as a baseline style for the Collect.js fields ("true" to calculate style, "false" to start with unstyled text fields)
Default: "true"
data-validation-callback String A JavaScript function which will be called each time a Collect.js field attempts to validate. It will recieve three paramaters: a string indicating which field was validated (ccnum or checkname, for example), a boolean for whether or not it validated successfully, and a string which may provide more detailed information about why the validation failed. For broadest compatibility, enclose the function in parentheses like in the example above
data-custom-css JSON String The CSS rules that will be applied to the fields by default. These override anything provided through the style-sniffer, if used. The rules should be packaged as a JSON-formatted object, containing a key-value pair for each property's name and value. Please see below for a list of the supported CSS properties
data-invalid-css JSON String The CSS rules that will be added to a field when it fails to validate. These override anything provided through the style-sniffer and the custom-css paramater, if used. The rules should be packaged as a JSON-formatted object, containing a key-value pair for each property's name and value. Please see below for a list of the supported CSS properties
data-placeholder-css JSON String The CSS rules that will be added to a field when it's displaying a placeholder. The rules should be packaged as a JSON-formatted object, containing a key-value pair for each property's name and value. Please see below for a list of the supported CSS properties