a week ago
ChannelOnline uses processors that can provide a hosted web page service to conduct all credit card transactions. This is for PCI security compliance, plus the safety of your client's data. Some processors do offer tokenization that can be used for streamlining the order process, with information encrypted and stored on the processor system. The current list of processors can be seen on the Payment Options page in the Credit Card Electronic section.
Current Processors:
Other Hosted Options:
Transaction Overview
Different card processors accept various field data from ChannelOnline to assist the end contact in using the hosted page for checkout (convert to order). These can be as few as contact name, email, and transaction amount, to accepting the billing address information. What we provide to the processor is primarily based on their hosted page implementation and the reseller’s settings within that processor’s payment portal.
NOTE: CC information is submitted AFTER the “Review Order” step during checkout.
A typical successful submit response will contain the following details:
Checkout Workflow
Reseller’s own Processor Connection
Although most resellers rely on ChannelOnline integrated processors, some have their own internal setup for processing credit cards. In this scenario, resellers can process credit cards using XML without an integrated processor i-framed capture page. In this case, the handling of the credit card and tokenization is all handled by the reseller.
For your reference, this REST request will include the following parameters:
You can access or trigger this request directly using the following link:
https://api.yourdomain.com/v1/pay?documentId=[documentId]&documentNumber=[documentNumber]&userEmail=[userEmail]&totalAmount=[totalAmount]&poNumber=[poNumber]
Please let us know if you have any questions or if any adjustments are needed. We can typically accommodate other data fields upon request.
NOTE: The value sent in "EchoData" needs to be returned back as is on the callback to continue the order process (see below).
Sample
<input type='hidden' name='MerchantID' value="${merchantId}" />
<!-- ORDER # -->
<input type='hidden' name='CustomerID' value="${customerId}" />
<input type='hidden' name='CustomerNumber' value="${customerNumber}" />
<input type='hidden' name='OrderID' value="${quoteId}" />
<input type='hidden' name='OrderNumberRegular' value="${quoteNumber}" />
<input type='hidden' name='OrderAmount' value="${amount}" />
<input type='hidden' name='ContactID' value="${contactId}" />
<input type='hidden' name='ContactEmail' value="${contactEmail}" />
<input type='hidden' name='TransactionType' value="${transactionType}" />
<input type='hidden' name='PONumber' value="${poNumber}" />
<input type='hidden' name='Token' value="${subsId}" />
<!-- BILL TO INFO -->
<input type='hidden' name='BilltoFirstName' value="${billingAddress.getFirstName()}" />
<input type='hidden' name='BilltoLastName' value="${billingAddress.getLastName()}" />
<input type='hidden' name='BilltoStreet1' value="${billingAddress.getAddress1()}" />
<input type='hidden' name='BilltoCity' value="${billingAddress.getCity()}" />
<input type='hidden' name='BilltoState' value="${billingAddress.getStateAbbreviation()}" />
<input type='hidden' name='BilltoPostalCode' value="${billingAddress.getZip()}" />
<input type='hidden' name='BilltoCountry' value="${billingAddress.getCountryAbbreviation()}" />
<!-- SHIP TO INFO -->
<input type='hidden' name='ShiptoFirstName' value="${shippingAddress.getFirstName()}" />
<input type='hidden' name='ShiptoLastName' value="${shippingAddress.getLastName()}" />
<input type='hidden' name='ShiptoStreet1' value="${shippingAddress.getAddress1()}" />
<input type='hidden' name='ShiptoCity' value="${shippingAddress.getCity()}" />
<input type='hidden' name='ShiptoState' value="${shippingAddress.getStateAbbreviation()}" />
<input type='hidden' name='ShiptoPostalCode' value="${shippingAddress.getZip()}" />
<input type='hidden' name='ShiptoCountry' value="${shippingAddress.getCountryAbbreviation()}" />
<!-- CUSTOM DATA -->
<input type="hidden" name="EchoData" value="${userData}" />
Platform Merchant SAQ-A Attestation
ChannelOnline was designed and scoped to support an SAQ‑A merchant model. Syndigo maintains an SAQ-A certification for CC processing for ChannelOnline that supports our hosted page, PCI-compliant, non-data storage, and checkout workflow for the benefit of our resellers and their end customers. This SAQ-A certification is approved by an outsourced third party for annual validation.