Merchant Connect is a marketplace designed to bring together merchants in one centralized location. CCBill is once again improving consumers’ online purchase experience by providing a new way to make new purchases from different merchants without re-entering payment information.
Designed to simplify and secure the purchase process while increasing revenue, Merchant Connect empowers your business to reach new markets and consumers with flexibility and innovation delivered by CCBill.
With Merchant Connect we’ve created a simple user experience that allows merchants to quickly and easily connect with each other, partnering to increase traffic and revenue for both parties. You can list your program and get it in front of the network of CCBill merchants, or quickly find a partner program to share your traffic with.
Basically, CCBill plays matchmaker between Sponsor Merchants and Affiliate Merchants. The platform empowers one-click transactions between all merchants, so your audience can make instant purchases from other merchants. An affiliate merchant sends a member or buyer to a selected number of CCBill sponsored merchants and offer their product which can be bought with a single click of a mouse button. CCBill tracks these one-click transactions, and we track and payout on the revenue sharing - all within the Merchant Connect platform.
What makes you a Sponsor Merchant? | What makes you an Affiliate Merchant? | |
---|---|---|
You would like to offer your product or service to other CCBill website owners. | You have existing or previous consumers who have purchased through CCBill. | |
You would like to increase your incoming traffic and automate your revenue sharing. | You would like to increase your revenue by offering another product or service to your consumers. | |
You would like to grow your own customer base with new cross-sales from partners. | You would like to automate your sales flow and simplify the up-sale process on your site. |
If you see yourself in any of the above-mentioned roles, then there's nothing standing in your way of receiving or sending traffic via Merchant Connect.
Merchant Connect is considered to be an Advanced Feature. As such this document assumes the following:
Merchant Connect implementation requires that both Sponsor Merchant and Affiliate Merchants use CCBill’s Data Link Extract System. Data Link will be enabled for your account when you set up a program, or you can contact our Merchant Support Department at merchantsupport@ccbill.com to have this enabled if you want to familiarize yourself with the system before you create programs.
Merchant Connect implementation requires that both Sponsor Merchant and Affiliate Merchant use the CCBill API. This is a component of Data Link that facilitates the use of the Advanced Method of implementing Merchant Connect. This method is further discussed below.
CCBill Velocity Controls is an advanced CCBill API feature, and it enables you to limit customer transactions by the number of transactions and/or by cash amount of transactions within a specific time frame. This means that you can set the number of transactions for a specific customer within a given period of time. Rules apply to all payment types and can be implemented on a single subaccount or across all subaccounts.
When applied, each customer is assigned a unique ID based on their financial information and security background. By setting up CCBill Velocity Controls, you limit the chances of fraud and, on an individual basis, you allow good loyal customers to continue to make purchases beyond the established limits. If you are interested in this advanced feature, please contact merchantsupport@ccbill.com to set up velocity controls according to your business requirements.
The implementation of the Merchant Connect system will be different for almost every situation. This document intends to provide you with an overview of the process and the necessary calls for the supported methods of submission and retrieval; you will need to use the provided information and mold it to your own setup.
Included are four potential manners in which Merchant Connect could be used.
1. The consumer visits the Affiliate Merchant’s site and signs in to their account.
2. From the Affiliate Merchant’s site, the consumer clicks a banner or link for the Sponsor Merchant’s program.
3. Merchant Connect redirects the consumer to the Sponsor Merchant’s program page with an attached token that contains the consumer’s identifying information (the token is not visible to the consumer).
4. Merchant Connect presents an offer to the consumer from the Sponsor Merchant.
5. The consumer accepts the terms of the transaction.
6. Merchant Connect uses the token information to process the transaction without having the consumer enter in any payment information.
7. The Sponsor Merchant completes order fulfillment and the Affiliate Merchant is credited for referring the consumer to the Sponsor Merchant.
1. The consumer visits the Affiliate Merchant’s site and signs in to their account.
2. From the Affiliate Merchant’s site, the consumer clicks a banner or link for the Sponsor Merchant’s program.
3. The consumer is redirected by Merchant Connect to the Sponsor Merchant’s program page with an attached token that contains the consumer’s identifying information (the token is not transparent to the consumer).
4. During the redirect the consumer is charged using the token information.
5. The consumer is redirected to the Sponsor Merchant’s site with a successful transaction.
6. The Affiliate Merchant is credited for referring the consumer to the Sponsor Merchant.
1. The consumer visits the Affiliate Merchant’s site and signs in to their account.
2. While signed in to the Affiliate Merchant’s site, the consumer clicks a banner or link for the Sponsor Merchant’s program.
3. Merchant Connect redirects the consumer to the Sponsor Merchant’s program page with an attached token that contains the consumer’s identifying information (the token is not visible to the consumer).
4. Sponsor Merchant uses token information to generate a session of the consumer’s information (sessions do not expire and can be used indefinitely to charge the consumer without re-entering payment information).
5. Merchant Connect uses the session information to process the transaction without having the consumer enter in any payment information.
6. The Sponsor Merchant completes order fulfillment and the Affiliate Merchant is credited for referring the consumer to the Sponsor Merchant.
1. The consumer visits the Affiliate Merchant’s site and signs in to their account.
2. While signed in to the Affiliate Merchant’s site, the consumer clicks a banner or link for the Sponsor Merchant’s program.
3. Merchant Connect redirects the consumer to the Sponsor Merchant’s program page with an attached token that contains the consumer’s identifying information (the token is not transparent to the consumer).
4. The Affiliate Merchant adds additional information to the redirect URL as slash delimited details (/variable1/value1/variable2/value2).
5. Sponsor Merchant receives information from affiliate merchant’s site and creates a profile for consumer.
6. Merchant Connect uses the token information to process the transaction without having the consumer enter in any payment information.
7. The consumer is signed in to the Sponsor Merchant’s site with a successful transaction and their new profile.
8. The Sponsor Merchant completes order fulfillment and the Affiliate Merchant is credited for referring the consumer to the Sponsor Merchant.
There are two methods of Merchant Connect implementation:
The Advanced Method requires Affiliate Merchants to fully integrate with the CCBill API. The Affiliate then uses the “Get Cross Sale Token” calls in the CCBill API to generate and return an authenticated token via a script when a consumer clicks on the banner or promotional material on the Affiliate Merchant's site. The Affiliate Merchant then replaces that token with a modified version that contains their program participation ID.
The Sponsor Merchant’s site will use the CCBill API to make a “Charge By Token” call to the CCBill API to complete the purchase. In the event that the token is not authenticated (the Authentication Period has lapsed) the consumer will be required to provide some identity verification to obtain a verified token and resubmit the “Charge By Token” call. The default authentication period is 24 hours.
This method, although more programming-intensive, creates a more seamless experience for the user.
The Simple Method requires less programming from Affiliate Merchants to implement, but results in more input from the consumer in order to complete the purchase.
In the Simple Method Affiliate Merchants attach identifying information about the subscription holder to the referring link code instead of generating a CCBill API token. The consumer is directed through Merchant Connect where an unauthenticated token that includes the Affiliate Merchant’s information and the consumer’s identifying information is created and sent to the Sponsor Merchant’s site.
The consumer clicks to confirm the purchase which triggers the “Charge By Token” call to the CCBill API which in turn recognizes the unauthenticated status of the token and prompts the consumer for identity verification. If the identity is successfully verified the CCBill API will redirect to the ”url” parameter passed in by the Sponsor Merchant (a ”failureURL” can be provided as well for instances where the consumer fails to identify themselves properly).
The Simple Method has two “sub-options” available. The only difference between the two is the parameters that are required to be sent from the Affiliate Merchant to Merchant Connect.
MerchantAccnum | Integer | CCBill Merchant Account Number |
MerchantSubacc | Short | CCBill Merchant Subaccount Number |
usingMerchantSubacc | Short | CCBill Merchant Subaccount Number (when applicable and MerchantSubacc is null) |
username | String | CCBill API Username |
password | String | CCBill API Password |
IN | authenticationInfo | ||
IN | sessionId/tokeninfo | string | sessionId represents a unique identifier for the consumer relationship between the Affiliate Merchant and the Sponsor Merchant; tokeninfo is a transient data object that includes information that will be used to either create or lookup a session. |
OUT | string | Email address on record for the Affiliate Merchant's consumer. | |
OUT | isAuthLocked | byte | 1 = Consumer has failed too many times to be authen ticated and must try again later; 0 = Consumer has not exhausted their authentication attempts |
OUT | isAuthenticated | byte | 1 = Consumer Validated their Postal Code or this was an advanced token; 0 = Consumer hasn't validated their Postal Code, their validation window has expired, or an advanced token has expired. |
OUT | authenticationUrl | string | If isAuthenticated = 0, the user will need to be redirected to this URL to validate their identity; The following parameters can be passed through to this system: *url = URL to redirect to upon successful validation (if not provided will redirect to the HTTP_REFERER) *failureUrl = URL to redirect to upon failed validation (if not provided will redirect to "url" parameter) |
OUT | isUserCreated | byte | 1 = Sponsor has successfully registered a user for the consumer using the createUserForCrossSale method; 0=Sponsor has not yet registered a user for the consumer using the createUserForCrossSale method. |
OUT | paymentUniqueId | string | Uniquely identifies a particular payment account (credit card/exp date, ACH account/routing number) utilizing a hashing algorithm. Often used by Sponsor Merchants for fraud purposes. |
OUT | programParticipationId | integer | The unique identifier that signifies the relationship between an Affiliate Merchant and a Sponsor Merchant's program. |
OUT | sessionId | string | Same as above. |
OUT | errorCode | integer | 0 = There was no error; see Appendix A: Error Codes and Descriptions for a list of other possible codes. |
OUT | errorDesc | string | Description of the returned error; see Appendix A: Error Codes and Descriptions for a list of possible descriptions. |
OUT | subscriptionId | integer | If this is present the Sponsor Merchant has processed at least one sale with this session. The subscriptionId provided was the first sale processed. |
Example:
<soapenv:Envelope>
<soapenv:Body>
<q0:getCrossSaleTokenInfoRequest>
<authenticationInfo>
<MerchantAccnum>9000000</MerchantAccnum>
<username>user</username>
<password>test1234</password>
</authenticationInfo>
<tokenInfo>4OJ3K6i63IOtc0Czanbz5m2boEiaFf+lE2prv1bPkXQ=</tokenInfo>
</q0:getCrossSaleTokenInfoRequest>
</soapenv:Body>
</soapenv:Envelope>
Response:
<soap:Envelope>
<soap:Body>
<getCrossSaleTokenInfoResponse>
<response>
<errorCode>0</errorCode>
<email>xxxx@ccbill.com</email>
<isAuthLocked>0</isAuthLocked>
<isAuthenticated>1</isAuthenticated>
<isUserCreated>0</isUserCreated>
<paymentUniqueId>/PvvoUQCmc3WoTssCZawbQ</paymentUniqueId>
<programParticipationId>4240</programParticipationId>
<sessionId>kmEEyxSst43rIx0Quj4RyA</sessionId>
<subscriptionId>0106100101000000001</subscriptionId
</response>
</getCrossSaleTokenInfoResponse>
</soap:Body>
</soap:Envelope>
IN | authenticationInfo | |||
IN | sessionId/tokeninfo | string | sessionId represents a unique identifier for the consumer relationship between the Affiliate Merchant and the Sponsor Merchant; tokeninfo is a transient data object that includes information that will be used to either create or lookup a session. | |
IN | initialPrice | integer | Amount of the initial charge. Based on two implied decimals. For example, $2.95 should be passed as 295. | |
IN | initialPeriod | integer | Length of the initial term of the subscription in days. | |
IN | recurringPrice | integer | Optional | Amount of each recurring charge. Based on two implied decimals. For example, $29.95 should be passed 2995. |
IN | recurringPeriod | integer | Optional | Length of the recurring term of the subscription in days. |
IN | rebills | short | Optional | Number of times to rebill the subscription before the subscription ends (99 for unlimited). |
IN | currencyCode | short | Optional | ISO 4217 Numeric Currency code (i.e., US Dollars = 840); Defaults to 840. |
IN | passThrough pairs | name/value pairs | Optional | Miscellaenous data that the Sponsor can pass in during the signup process that will be provided back to them in the approval/denial background posts. |
OUT | approved | byte | 0 = Declined, 1 = Approved. | |
OUT | paymentUniqueId | string | Uniquely identifies a particular payment account (i.e., credit card/exp date, ACH account/routing number) utilizing a hashing algorithm. Some Merchants use this for fraud purposes on their side. | |
OUT | sessionId | string | sessionId represents a unique identifier for the consumer relationship between the Affiliate Merchant and the Sponsor Merchant. | |
OUT | subscriptionId | string | The Subscription ID of the newly processed transaction (assuming it was approved). | |
OUT | denialId | integer | The unique descriptor of the ID. | |
OUT | declineCode | integer | The decline code provided by the credit card processor. | |
OUT | declineText | string | Present if the transaction is declined; provides a description about why the transaction was declined. | |
OUT | authenticateUrl | string | Present if the token/session is unauthenticated. If isAuthenticated = 0, the user will need to be redirected to this URL to validate their identity; The following parameters can be passed through to this system: * url = URL to redirect to upon successful validation (if not provided will redirect to the HTTP_REFERER) * failureUrl = URL to redirect to upon failed validation (if not provided will redirect to "url" parameter) |
Example:
<soapenv:Envelope>
<soapenv:Body>
<q0:chargeCrossSaleBySessionRequest>
<authenticationInfo>
<MerchantAccnum>900000</MerchantAccnum>
<usingMerchantSubacc>0000</usingMerchantSubacc>
<username>testuser</username>
<password>test1234</password>
</authenticationInfo>
<sessionId>kmEEyxSst43rIx0Quj4RyA</sessionId>
<paymentInfo>
<initialPrice>1000</initialPrice>
<initialPeriod>30</initialPeriod>
</paymentInfo>
<passThroughInfo>
<pairs>
<name>field1</name>
<value>value1</value>
</pairs>
</passThroughInfo>
</q0:chargeCrossSaleBySessionRequest>
</soapenv:Body>
</soapenv:Envelope>
Response:
<soap:Envelope>
<soap:Body>
<chargeCrossSaleBySessionResponse>
<response>
<errorCode>0</errorCode>
<approved>1</approved>
<paymentUniqueId>/PvvoUQCmc3WoTssCZawbQ</paymentUniqueId>
<sessionId>kmEEyxSst43rIx0Quj4RyA</sessionId>
<subscriptionId>910089201000000023</subscriptionId>
</response>
</chargeCrossSaleBySessionResponse>
</soap:Body>
</soap:Envelope>
IN | authenticationInfo | |||
IN | sessionId/tokeninfo | string | sessionId represents a unique identifier for the consumer relationship between the Affiliate Merchant and the Sponsor Merchant; tokeninfo is a transient data object that includes information that will be used to either create or lookup a session. | |
IN | SponsorMemberUsername | string | Optional | The username the Sponsor Merchant added to their website and provided to us utilizing the createUserForCrossSaleToken or createUserForCrossSaleSession methods. |
IN | SponsorMemberPassword | string | Optional | Same as SponsorMemberUsername, except for the password. |
OUT | sessionId | string | sessionId represents a unique identifier for the consumer relationship between the Affiliate Merchant and the Sponsor Merchant. |
Example:
<soapenv:Envelope>
<soapenv:Body>
<q0:createUserForCrossSaleSessionRequest>
<authenticationInfo>
<MerchantAccnum>900000</MerchantAccnum>
<username>testuser</username>
<password>test1234</password>
</authenticationInfo>
<sessionId>kmEEyxSst43rIx0Quj4RyA</sessionId>
<SponsorMemberUsername>TEST</SponsorMemberUsername>
<SponsorMemberPassword>TEST</SponsorMemberPassword>
</q0:createUserForCrossSaleSessionRequest>
</soapenv:Body>
</soapenv:Envelope>
Response:
<soap:Envelope>
<soap:Body>
<createUserForCrossSaleSessionResponse>
<response>
<errorCode>0</errorCode>
<sessionId>kmEEyxSst43rIx0Quj4RyA</sessionId>
</response>
</createUserForCrossSaleSessionResponse>
</soap:Body>
</soap:Envelope>
IN | authenticationInfo | |||
IN | subscriptionId | integer | Optional | The Subscription ID that the Affiliate Merchant wishes to create the token from. |
IN | AffiliateMemberUsername | string | Optional | The Username that the Affiliate Merchant wishes to include in the token (will be overriden with what we have on record if they're using our user management). |
IN | AffiliateMemberPassword | string | Optional | The Password that the Affiliate Merchant wishes to include in the token (will be overriden with what we have on record if they're using our user management). |
OUT | tokeninfo | string | The authenticated token that's created based on the information above that they will utilize to forward the consumer through WMS to the Sponsor's website. |
Example:
<soapenv:Envelope>
<soapenv:Body>
<q0:generateSessionForCrossSaleByTokenRequest>
<authenticationInfo>
<MerchantAccnum>900000</MerchantAccnum>
<username>testuser</username>
<password>test1234</password>
</authenticationInfo>
<subscriptionId>0910089201000000022</subscriptionId>
</q0:generateSessionForCrossSaleByTokenRequest>
</soapenv:Body>
</soapenv:Envelope>
Response:
<soap:Envelope>
<soap:Body>
<generateSessionForCrossSaleByTokenResponse>
<return>
<errorCode>0</errorCode>
<tokeninfo>4OJ3K6i63IOtc0Czanbz5thajxTbspyOu7DBqLoLt9w%3D</tokeninfo>
</return>
</generateSessionForCrossSaleByTokenResponse>
</soap:Body>
</soap:Envelope>
Error Code | Error Description |
---|---|
-101 | Invalid Subscription ID |
-102 | Invalid Program Participation ID |
-103 | Session not Found |
-104 | Session is not Authenticated |
-105 | Subscription ID not Present |
-106 | System Error |
-107 | User Already Created |
-108 | Transaction Declined |
-109 | Invalid Subscription |
-110 | Unable to Verify Subscription |
-111 | Unable to Find Customer Info |
-112 | Invalid Merchant Subaccount |
-113 | Invalid Recurring Info |
Merchant Connect is a marketplace designed to bring together merchants in one centralized location. Merchant Connect builds on our One-Click Cross Sale System you can provide consumers a new way to make additional purchases from different merchants without re-entering payment information.
To join a Merchant Connect Program:
1. Sign in to the Admin Portal.
2. Click the Merchant Connect mega menu, then click Explore & Join Programs.
3. Browse the list of Merchant Connect programs available. When you find a program that interests you, click View Details for more information. View Details displays the following information:
Program Overview | |
Program Name | Name of the available Sponsor Program. |
Program URL | The URL a consumer is directed to from your site. |
Payout Type | |
Revshare | Pays a percentage of the consumer's purchase. |
Pay per Sale | Pays a flat dollar amount per sale. |
Sponsor Managed | Payment is variable; Sponsor Merchant will provide more information. |
Payout Details | |
Pay for Trials/Initials/Rebills | Shows which transaction types the program pays for. |
Rebill Payout Frequency | The number of rebills the program pays for. |
Percent of Sale Payout or Flat Payout Amount | Specific payout amounts. |
Payout Time | Whether you receive payment at the time of initial sale or after the first rebill is successful. |
Method | |
Simple & Advanced/Advanced | Cross Sale Method selected for the program. |
Program Details | |
Instructions | General Merchant Connect instructions. |
Special Instructions | Specific Sponsor instructions for this program. |
4. Locate a program that you would like to promote and click Join Program.
5. After clicking Join Program, a notification is sent to the program owner expressing your interest in partnering with them. When the Sponsor approves your request you will receive an email confirming your acceptance.
1. Sign in to the Admin Portal.
2. On the Merchant Connect mega menu, click Programs Currently Enrolled In to view your current partnerships.
3. Locate the program you wish to create a script for and click View Details.
4. In the API Account section, click Generate PHP Script.
5. After clicking this link you will be prompted to select an available API Account to use for this script. Select the radio button for the username you would like to use and click Generate PHP.
Once this button is clicked your download will begin in a new tab.
After joining the programs you wish to promote and downloading the PHP script, you just need to complete the technical integration. Click the Technical Features tab at the top of this page for details and example use cases/flows for Merchant Connect.
Merchant Connect is a marketplace designed to bring together merchants in one centralized location. By expanding our one click cross sale system you can provide consumers a new way to make additional purchases from different merchants without re-entering payment information.
Becoming a Merchant Connect Sponsor requires configuration from the CCBill Merchant Support Staff. Please contact merchantsupport@ccbill.com to begin the process.
Once the CCBill Staff has configured your account to be a Merchant Connect Sponsor you can configure your program.
To create a Sponsor Merchant Connect Program:
1. Sign in to the Admin Portal.
2. On the Merchant Connect mega menu, click Create Program to view your current partnerships.
3. The wizard will help you configure your Merchant Connect Program. The Create Program screen contains the following fields:
Payout Type | |
Revshare | Percentage of the consumer's purchase paid out for sales paid out by CCBill. |
Pay per Sale | Flat dollar amount paid out per sale paid out by CCBill. |
Sponsor Managed | If you will be handling the payouts yourself; CCBill will not payout for programs with this setting. |
Method | |
Simple & Advanced/Advanced | Cross Sale Integration methods. |
Program Details | |
Instructions | General Merchant Connect instructions. |
Special Instructions | Your specific instructions for this program. |
4. Fill in the required fields and click Save at the top of the page.
1. Sign in to the Admin Portal.
2. On the Merchant Connect mega menu, click Manage my Programs to view your current partnerships. This screen will list all your Merchant Connect Programs.
3. Select your preferred action from the Actions drop down menu. The available options are:
From within the View/Modify Program screen you will have the ability to make edits to your existing program setup. The CCBill system will automatically notify your Merchant Connect partners via email when changes are made to your program.
1. Click Edit at the top left of the screen.
2. Update any fields where changes are needed.
3. Click Save at the top left of the screen.
If you would like to deactivate a Merchant Connect Program you can do this from the Manage My Program Screen.
1. Locate the program you wish to deactivate from your program list.
2. Select Deactivate Program from the drop down menu.
3. You will be presented with a confirmation box to deactivate the program.
4. Select Yes.
If you have a program that has been deactivated, you can reactivate it from the Manage My Program screen as well.
1. Locate the program you wish to reactive from your program list.
2. Select Reactive Program from the drop-down menu.
3. You will be presented with a confirmation box to reactive the program.
4. Select Yes.
This option will present you with all Merchant Connect partners currently active in your program. From here you can either view the Merchant's details, or remove them from your program.
In order to view the details of a particular partner just click View Details next to their name. From this screen you'll be able to view the below listed details.
NAME |
---|
Affiliate ID |
Participation ID |
Name |
Address |
You have two options to remove an affiliate from your program:
Option 1: From the Overview Page
1. Check the box to the left of the Affiliate ID for the merchant you wish to remove.You may select multiple Affiliates to be removed at once
2. Click Remove Selected Affiliate from this Program.
Option 2: From the Details Page
1. Locate the Affiliate you would like to remove from your program and click View Details.
2. Click Remove Affiliate from this Program.
All requests to join your program will be sent to the Invitation Queue and require approval before they can begin promoting your program. When an Affiliate requests to join your program you will be notified of a pending invitation via Email. Viewing and managing the invitation queue can be done in a few simple steps.
1. Sign in to the Admin Portal.
2. On the Merchant Connect mega menu, click Invitation Queue to view your pending invitations. This screen will list all your pending invitations.
3. Check the box next to the Affiliates you wish to accept or reject.
4. Click the appropriate button (Accept Selected Invitations or Reject Selected Invitations) at the top of the screen.
Affiliates will be notified via email when they are accepted or denied access to your program.