<div class="container">
  <div class="row justify-content-md-center mt-5">
    <div class="col-12">
      <div class="card">
        <div class="card-body">
          <h5 class="card-title">Implementation for the 2Pay.js client with language change</h5>
          <form type="post" id="payment-form">
            <div class="form-group">
              <label for="name" class="label control-label">Name</label>
              <input type="text" id="name" class="field form-control">

            <div id="card-element">
              <!-- A TCO IFRAME will be inserted here. -->

            <button class="btn btn-primary" type="submit">Generate token</button>
#two-co-iframe {
  height: 220px;
window.addEventListener('load', function() {
  // Initialize the 2Pay.js client.
  let jsPaymentClient = new TwoPayClient('AVLRNG');

  // Set the desired language to be used inside the iframe.
  // Create the component that will hold the card fields.
  let component = jsPaymentClient.components.create('card');
  // Mount the card fields component in the desired HTML tag. This is where the iframe will be located.

  // Handle form submission.
  document.getElementById('payment-form').addEventListener('submit', (event) => {
    // Extract the Name field value
    const billingDetails = {
      name: document.querySelector('#name').value

    // Call the generate method using the component as the first parameter
    // and the billing details as the second one
    jsPaymentClient.tokens.generate(component, billingDetails).then((response) => {
    }).catch((error) => {

External CSS

  1. https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css

External JavaScript

  1. https://2pay-js.2checkout.com/v1/2pay.js