North America North America
Create a test account Support Login

A payment with Custom Checkout involves 3 steps:

  1. Configure Custom Checkout in your client.

  2. Create a token through Custom Checkout.

  3. Create a payment by passing the token to our Payment API via your server.

Step 1: Configure Custom Checkout

First , include and initialize Custom Checkout.

<script src='https://libs.na.bambora.com/customcheckout/1/customcheckout.js'></script>

<script>
    var customCheckout = customcheckout();
</script>

Second , create and mount the inputs. Mount the custom input to the HTML element using its CSS selector.

<!-- ... -->
<form id="checkout-form">
    <div id="card-number"></div>
    <div id="card-cvv"></div>
    <div id="card-expiry"></div>
    <!-- ... -->
</form>

<script>
    var customCheckout = customcheckout();
    var cardNumber = customCheckout.create('card-number')
    cardNumber.mount('#card-number');
    // ...
</script>
<!-- ... -->

You can add styling to the inputs when passing the options argument to customcheckout.create().

// Styles to be applied to the text rendered in the iframe
var style = {
  error: {
    color: 'red',
    ':focus': {
      fontStyle: 'italic',
    },
  },
};

// Classes to be applied to the element wrapping the iframe
var classes = {
  error: 'my-error-class',        
};

var options = {
  placeholder: 'Card number',
  style: style,
  classes: classes,
  brands: ['visa', 'mastercard'],
};

var cardNumber = customCheckout.create('card-number', options);

Third , add an event listener so that you can handle validation errors.

customCheckout.on('error', function(event) {
    if (event.field === 'card-number') {
      console.log('Card number has errors: ' + JSON.stringify(event));
    } else if (event.field === 'cvv') {
      console.log('CVV has errors: ' + JSON.stringify(event));
    } else if (event.field === 'expiry') {
      console.log('Expiry has errors: ' + JSON.stringify(event));
    }
});

customCheckout.on('complete', function(event) {
    if (event.field === 'card-number') {
      console.log('Card number is complete: ' + JSON.stringify(event));
    } else if (event.field === 'cvv') {
      console.log('CVV is complete: ' + JSON.stringify(event));
    } else if (event.field === 'expiry') {
      console.log('Expiry is complete: ' + JSON.stringify(event));
    }
});

Step 2: Create a token

You request a token for the card data in the Custom Checkout text inputs at any time using customCheckout.createToken. It will only return a token if the card data is valid, otherwise it will return an error.

The token returned is a nonce. It expires on-use or after 5 minutes.

customCheckout.createToken(function (result) {
  if (result.error) {
    console.log(result.error.message);
    // display error message
  } else {
    console.log(result.token);
    // process token using our Payments API
  }
});

Step 3: Create a payment

Once you have a token representing credit card data, the next step is to pass to one of our APIs via your server. You can either pass it to the Payment API to create a payment immediately, or pass it to the Payment Profile API to save the card data for future payments.

You can find out more about getting up-and-running with our APIs here .