Leading Edge Payments Technology

Unique features. Powerful platform. Real innovation.

Simple API and SDKs

We've taken the work out of complicated payments integration. Our API and SDKs are simple and powerful with libraries available in most major languages.

Integrated Onboarding

Instantly onboard your customers without the hassle of manual processes.Our powerful onboarding platform can programmatically underwrite and provision customers in real time.

CipherPay

Remove the burden of security and PCI compliance. Forget about the hassle and rules of an iFrame. Completely customize and control your payment experience.

Rock Solid. Secure

Base Commerce is a PCI Level 1 certified payment platform. Security is our top priority. We offer unique products and services to help our clients secure cardholder data and deal with threats in payment processing environments.

Payment models that make sense

We work with every customer to help determine the best payment model for their business
developers.png

Developers

Multi-tiered pricing
specialized for developers
Fit your business model with our specialized pricing solutions
Bundled Rate -
One flat % rate for all payments. similar to square
Multi-Tier -
Attractive qualified rates with exception surcharges
Interchange+ -
Interchange rate + developer defined basis points
mearchents.png

Merchants

Fee Structured, interchange
pricing for merchants
Interchange+ pricing with authorization fees as low as 6.9 cents
no monthly fees
no surcharges
no cancellation fees
no long-term contracts

Support for multiple platforms

We support most major software platforms out of the box. Use our simple SDKs to enable your web, mobile, or desktop application to accept payments. Be up and running in minutes, not days.

Take our API for a test drive

o_bc = BankCard.new
o_bc.name = "Test Card"
o_bc.expiration_month = "08"
o_bc.expiration_year = "2019"
o_bc.number = "4111111111111111"
 
o_client = BaseCommerceClient.new( s_username, s_password, s_key )
o_client.sandbox = true
o_bc = o_client.add_bank_card( o_bc )
if o_bc.status == BankCard.xs_bc_status_failed
    puts o_bc.messages
elsif o_bc.status == BankCard.xs_bc_status_active
    puts o_bc.token
end
o_bct = BankCardTransaction.new
o_bct.type = BankCardTransaction.xs_bct_type_sale
o_bct.amount = 23.31
o_bct.card_name = "Sample Bank Card Transaction"
o_bct.card_number = "4111111111111111"
o_bct.card_expiration_month = "10"
o_bct.card_expiration_year = "2019"
 
o_client = BaseCommerceClient.new( s_username, s_password, s_key )
o_client.sandbox = true
o_bct = o_client.process_bank_card_transaction(o_bct)
 
if o_bct.status == BankCardTransaction.xs_bct_status_failed
    puts o_bct.messages
elsif o_bct.status == BankCardTransaction.xs_bct_status_declined
    puts o_bct.response_codeputs o_bct.response_message
elsif
    puts o_bct.id
end
o_bct = BankCardTransaction.new
o_client = BaseCommerceClient.new( s_username, s_password, s_key )
o_client.sandbox = true
o_bct = o_client.get_bank_card_transaction( "1046318" )
if o_bct.status == BankCardTransaction.xs_bct_status_failed
    puts o_bct.messages
else
    puts o_bct.status
end
my $client = BaseCommerceClient->new("username", "password", "key");
my $o_bc = BankCard->new;
$o_bc->setName("Test Bank Card 1");
$o_bc->setNumber("4111111111111111");
$o_bc->setExpirationMonth("09");
$o_bc->setExpirationYear("2018");

my $response = $client->addBankCard( \$o_bc );

if( $o_bc->isStatus( BankCard->XS_BC_STATUS_FAILED ) ){
    
    for my $reason ($o_bc->getMessages){
        print "\n $reason \n";
    }
}
else{
    print "\n Response Message : $response \n";
}
my $client = BaseCommerceClient->new("username","password","key");
my $o_bct = BankCardTransaction->new;

$o_bct->setCardName("Test Card Holder");
$o_bct->setCardNumber("4111111111111111");
$o_bct->setCardCVV2("111");
$o_bct->setCardExpirationMonth("05");
$o_bct->setCardExpirationYear("2020");
$o_bct->setAmount(4.60);
$o_bct->setType( BankCardTransaction->XS_BCT_TYPE_AUTH );

$o_bct->setMerchantTransactionId("123");

my $response = $client->processBankCardTransaction( \$o_bct );

if( $o_bct->isStatus( BankCardTransaction->XS_BCT_STATUS_FAILED ) ){
    
    for my $reason ($o_bct->getMessages ){
        print "\n $reason \n";
    }
}
else {
    print "\n Bank Card Transaction ID = ", $o_bct->getTransactionId, "\n";
}
my $client = BaseCommerceClient->new("username", "password", "key");
my $n_bct_id = 18;
my $o_bct = BankCardTransaction->new;
my $response = $client->getBankCardTransaction( $n_bct_id, \$o_bct );

if( $o_bct->isStatus( BankCardTransaction->XS_BCT_STATUS_FAILED ) ){
    
    for my $reason ($o_bct->getMessages){
        print "\n", $reason, "\n";
    }
}
elsif( $o_bct->isStatus( BankCardTransaction->XS_BCT_STATUS_DECLINED ) ){
    print "\n", $o_bct->getResponseCode, "\n";
    print "\n", $o_bct->getResponseMessage, "\n";
}
else {
    print "\n Successful Transaction: \n";
    print "\n Bank Card Transaction ID = ", $o_bct->getTransactionId, "\n";
}
BankCard o_bank_card = new BankCard ();
o_bank_card.setExpirationMonth("08");
o_bank_card.setExpirationYear("2019");
o_bank_card.setNumber( "4111111111111111");
o_bank_card.setName("Test Card");
BaseCommerceClient o_client = new BaseCommerceClient( s_username, s_password, s_key );
o_client.setSandbox(true);
o_bank_card = o_client.addBankCard(o_bank_card);
if ( o_bank_card.isStatus(BankCard.XS_BC_STATUS_FAILED) ) {
    // Bank Card add failed, look at messages for
    // reasons why
    System.out.println( o_bank_card.getMessages() );
} else if ( o_bank_card.isStatus(BankCard.XS_BC_STATUS_ACTIVE) ) {
    // Bank Card add Successful
    System.out.println( o_bank_card.getToken() );
}
BankCardTransaction o_bc_transaction = new BankCardTransaction();
o_bc_transaction.setType(BankCardTransaction.XS_BCT_TYPE_SALE);
o_bc_transaction.setAmount(5.25);
o_bc_transaction.setCardName("Sample Bank Card Transaction");
o_bc_transaction.setCardNumber("4111111111111111");
o_bc_transaction.setCardExpirationMonth("08");
o_bc_transaction.setCardExpirationYear("2016");
 
BaseCommerceClient o_client = new BaseCommerceClient( s_username, s_password, s_key );
o_client.setSandbox(true);
o_bc_transaction = o_client.processBankCardTransaction(o_bc_transaction);
 
if ( o_bc_transaction.isStatus(BankCardTransaction.XS_BCT_STATUS_FAILED) ) {
    // Transaction failed, look at messages for
    // reasons why System.out.println( o_bc_transaction.getMessages() );
} else if ( o_bc_transaction.isStatus(BankCardTransaction.XS_BCT_STATUS_DECLINED) ) {
     // Transaction declined, look at response code and
     // response message System.out.println( o_bc_transaction.getResponseCode() );
     System.out.println( o_bc_transaction.getResponseMessage() );
} else if ( o_bc_transaction.isStatus(BankCardTransaction.XS_BCT_STATUS_CAPTURED) ) {
    // Transaction successful
    System.out.println( o_bc_transaction.getTransactionId() );
}
BankCardTransaction o_bc_transaction = new BankCardTransaction();
BaseCommerceClient o_client = new BaseCommerceClient( username, password, key ); o_client.setSandbox(true);
o_bc_transaction = o_client.getBankCardTransaction(1046318);
if ( o_bc_transaction.isStatus(BankCardTransaction.XS_BCT_STATUS_FAILED) ) {
    // Transaction failed, look at messages for
    // reasons why
    System.out.println( o_bc_transaction.getMessages() );
} else { // Transaction retrieved, look at status of
    // of the transaction
    System.out.println( o_bc_transaction.getStatus() );
}
$o_bc = new BankCard();
$o_bc->setExpirationMonth("08");
$o_bc->setExpirationYear("2019");
$o_bc->setName("Test Card");
$o_bc->setNumber("4111111111111111");
$o_bcpc = new BaseCommerceClient( $s_username, $s_password, $s_key );
$o_bcpc->setSandbox( true );
$o_bc = $o_bcpc->addBankCard( $o_bc );
if( $o_bc->isStatus(BankCard::$XS_BC_STATUS_FAILED ) ) {
    //the add Failed, look at messages array for reason(s) why
    var_dump( $o_bc->getMessages() );
} else if( $o_bc->isStatus(BankCard::$XS_BC_STATUS_ACTIVE ) ) {
    //Card added successfully
    var_dump( $o_bc->getToken() );
}
$o_bct = new BankCardTransaction();
$o_bct->setType(BankCardTransaction::$XS_BCT_TYPE_SALE);
$o_bct->setCardName("Sample Bank Card Transaction");
$o_bct->setCardNumber("4111111111111111");
$o_bct->setCardExpirationMonth("09");
$o_bct->setCardExpirationYear("2016");
$o_bct->setAmount(1.33);
 
$o_bcpc = new BaseCommerceClient( $username, $s_password, $s_key );
$o_bcpc->setSandbox( true );
$o_bct = $o_bcpc->processBankCardTransaction( $o_bct );
 
if( $o_bct->isStatus( BankCardTransaction::$XS_BCT_STATUS_FAILED ) ) {
    //Transaction Failed, look at messages array for reason(s) why
    var_dump( $o_bct->getMessages() );
} else if( $o_bct->isStatus( BankCardTransaction::$XS_BCT_STATUS_DECLINED ) ) {
    //Transaction Declined, look at response code and response message
    var_dump( $o_bct->getResponseCode() );
    var_dump( $o_bct->getResponseMessage() );
} else if( $o_bct->isStatus(BankCardTransaction::$XS_BCT_STATUS_CAPTURED) ) {
    //Transaction went through successfully
    var_dump( $o_bct->getTransactionID() );
}              
$o_bcpc = new BaseCommerceClient( $s_username, $s_password, $s_key );
$o_bcpc->setSandbox( true );
$o_bct = new BankCardTransaction();
$o_bct = $o_bcpc->getBankCardTransaction(1046318);
if( $o_bct->isStatus(BankAccountTransaction::$XS_BAT_STATUS_FAILED) ) {    
    // Transaction failed, look at messages for reasons why    
    var_dump( $o_bct->getMessages() );
} else {    
    // Transaction retrieved, look at status of the transaction    
    var_dump( $o_bct->getStatus() );
} 
BankCard o_bc = new BankCard();
o_bc.setExpirationMonth("08");
o_bc.setExpirationYear("2019");
o_bc.setName("Test Card");
o_bc.setNumber("4111111111111111");
BaseCommerceClient o_client = new BaseCommerceClient(s_username, s_password, s_key);
o_client.setSandbox(true);
o_bc = o_client.addBankCard(o_bc);
if (o_bc.isStatus(BankCard.XS_BC_STATUS_FAILED))
{
    // Transaction Failed, look at messages array for reason(s) why
    foreach (String s_message in o_bc.getMessages())
    {
        System.Diagnostics.Debug.WriteLine(s_message);
    }
}
else if (o_bc.isStatus(BankCard.XS_BC_STATUS_ACTIVE))
{
    // Transaction Successful
    System.Diagnostics.Debug.WriteLine(o_bc.getToken());
}
BankCardTransaction o_bct = new BankCardTransaction();
o_bct.setType(BankCardTransaction.XS_BCT_TYPE_SALE);
o_bct.setCardName("Sample Bank Card Transaction");
o_bct.setCardNumber("4111111111111111");
o_bct.setCardExpirationMonth("10");
o_bct.setCardExpirationYear("2016");
o_bct.setAmount(10.55);
 
BaseCommerceClient o_client = new BaseCommerceClient( s_username, s_password, s_key );
o_client.setSandbox(true);
o_bct = o_client.processBankCardTransaction(o_bct);
 
if (o_bct.isStatus(BankCardTransaction.XS_BCT_STATUS_FAILED)){
    // Transaction Failed, look at messages array for reason(s) why
    foreach (String s_message in o_bct.getMessages()){
        System.Diagnostics.Debug.WriteLine(s_message);
    }
}else if (o_bct.isStatus(BankCardTransaction.XS_BCT_STATUS_DECLINED)){
    // Transaction Declined, look at Response Code and Response Message for why
    System.Diagnostics.Debug.WriteLine(o_bct.getResponseCode());
    System.Diagnostics.Debug.WriteLine(o_bct.getResponseMessage());
}else if (o_bct.isStatus(BankCardTransaction.XS_BCT_STATUS_CAPTURED)){
    // Transaction Successful
    System.Diagnostics.Debug.WriteLine(o_bct.getTransactionId());
}                              
BaseCommerceClient o_client = new BaseCommerceClient(s_username, s_password, s_key);
o_client.setSandbox(true);
BankCardTransaction o_bct = o_client.getBankCardTransaction("1046318");
if(o_bct.isStatus(BankCardTransaction.XS_BCT_STATUS_FAILED)) {
    // Transaction Failed, look at messages array for reason(s) why
    foreach (String s_message in o_bct.getMessages()) {
        System.Diagnostics.Debug.WriteLine(s_message);
    }
} else {
    // Transaction Successful
    System.Diagnostics.Debug.WriteLine(o_bct.getStatus());
} 
BaseCommerceClient *o_client = base_commerce_client_factor( "username", "password", "key" );
setSandbox(o_client, TRUE);

BankCard *o_bc = bank_card_factor();
setBankCardName( o_bc , "Test Bank Card 1");
setBankCardNumber( o_bc , "4111111111111111");
setBankCardExpirationMonth( o_bc , "09");
setBankCardExpirationYear( o_bc , "2018");

addBankCard(o_client, o_bc);

if( isBankCardStatus( o_bc, XS_BC_STATUS_FAILED )  ){
// Transaction failed, look at messages for reasons why
char ** o_messages = getBankCardMessages( o_bc );
int j = 0;
    while ( j < MAX_NUMBER_OF_MESSAGES && o_messages[j] ){
        printf( "\n%d) %s\n", j, o_messages[j] );
        ++j;
    }
}
else if( isBankCardStatus( o_bc, XS_BC_STATUS_ACTIVE ) ){
    printf("\n%s\n", getBankCardToken(o_bc) );
}
BaseCommerceClient *o_client = base_commerce_client_factor( "username", "password", "key" );
setSandbox(o_client, TRUE);

BankCardTransaction *o_bct = bank_card_transaction_factor();
setBankCardTransactionType(o_bct, XS_BCT_TYPE_SALE);
setBankCardTransactionAmount(o_bct, 5.25);
setBankCardTransactionCardName(o_bct, "Sample Bank Card Transaction");
setBankCardTransactionCardNumber(o_bct, "4111111111111111");
setBankCardTransactionCardExpirationMonth(o_bct,"08");
setBankCardTransactionCardExpirationYear(o_bct,"2016");

processBankCardTransaction( o_client, o_bct );

if( isBankCardTransactionStatus( o_bct, XS_BCT_STATUS_FAILED )  ){
    // Transaction failed, look at messages for reasons why
    char ** o_messages = getBankCardTransactionMessages( o_bct );
    int j = 0;
    while ( j < MAX_NUMBER_OF_MESSAGES && o_messages[j] ){
        printf("\n%d) %s\n", j, o_messages[j]);
        ++j;
    }
}
else if( isBankCardTransactionStatus( o_bct, XS_BCT_STATUS_DECLINED ) ){
    // Transaction declined, look at response code and
    // response message
    printf("\n%s\n", getBankCardTransactionResponseCode( o_bct ) );
    printf("\n%s\n", getBankCardTransactionResponseMessage( o_bct ) );
}
else if( isBankCardTransactionStatus( o_bct, XS_BCT_STATUS_CAPTURED ) ){
    // Transaction successful
    printf("\n%s\n", getBankCardTransactionMerchantTransactionID( o_bct ) );
}
BaseCommerceClient *o_client = base_commerce_client_factor( "username", "password", "key" );
setSandbox(o_client, TRUE);

BankCardTransaction* o_bct = bank_card_transaction_factor();

getBankCardTransaction( o_client, "6", o_bct );

if( isBankCardTransactionStatus( o_bct, XS_BCT_STATUS_FAILED )  ){
    // Transaction failed, look at messages for reasons why
    char ** o_messages = getBankCardTransactionMessages( o_bct );
    int j = 0;
    while ( j < MAX_NUMBER_OF_MESSAGES && o_messages[j] ){
        printf( "\n%d) %s\n", j, o_messages[j] );
        ++j;
    }
}
else{
    printf("\n%s\n", getBankCardTransactionStatus(o_bct) );
}

Here’s what our customers are saying

As a provider of billing and payment services across multiple industries, Base Commerce has proven to be an ideal solution for payment enabling our technology
Tyler Walton
CEO, Nextrust Corporation

Our network is strong and growing

  • tsys
  • AZTech_Proud-Member
  • layeredtech
  • synovus
  • coalfire
  • securitymetrics