Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


ember-conekta-service wraps Conekta.js library and makes it available through a service in your ember project. Features based in the ember-stripe-service library.


ember install ember-conekta-service


  • sets conekta.js script in index.html (test, app)
  • initializes conekta with public key
  • injects service in controllers which provides promisified method for Conekta.card.createToken
  • provides debugging logs for easy troubleshooting
  • client side validations for card number, expiration dates, card brand and CVC
  • lazy load conekta.js


In order to use Conekta you must set your public key in config/environment.js.

ENV.conekta = {
  publicKey: 'meep_thisIsATestKey',
  language: 'en', // defaults 'es' if not added
  debug: false, // turn on debugging
  lazyLoad: false, // lazy load conekta
  mock: false // mock out conekta.js, good for offline testing

Lazy Loading

If lazyLoad is set to turn Conekta.js will not be loaded until you call the load() function on the service. It's best to call this function in a route's beforeModel hook.

// subscription page route

import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
import { get } from '@ember/object';

export default Route.extend({
  conekta: service(),

  beforeModel() {
    return get(this, 'conekta').load();

Example of usage in a route

// subscription page route

import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
import { get, set } from '@ember/object';

export default Route.extend({
  conekta: service(),

  processCreditCard() {
    let customer = get(this, 'customer');

    // obtain access to the injected service
    let conektaService = get(this, 'conekta');

    // if for example you had the cc set in your route or component
    let card = get(this, 'creditCard');

    return conekta.card.createToken(card).then((token) => {
      // you get access to your newly created token here
      set(customer, 'conektaToken',;
    }).then(() => {
      // do more stuff here
    }).catch((error) => {
      // do something with the error


By setting debug: true in your application configuration you can enable some debugging messages from the service.

var ENV = {
  // some vars...
  conekta: {
    debug: true
  // more config ...


Conekta has a few client-side validation helpers. See more information here

  • validateNumber - Checks that the format of the card number is correct.
  • validateExpirationDate - Checks that the expiration date is a valid and future date.
  • validateCVC - Checks that the security code is a valid whole number, 3 to 4 characters long.
  • getBrand - Returns the type of the card as a string. The possible types are "visa", "mastercard", "amex", "unknown"



  • git clone <repository-url>
  • cd ember-conekta-service
  • npm install


  • npm run lint:js
  • npm run lint:js -- --fix

Running tests

  • ember test – Runs the test suite on the current Ember version
  • ember test --server – Runs the test suite in "watch mode"
  • npm test – Runs ember try:each to test your addon against multiple Ember versions

Running the dummy application

For more information on using ember-cli, visit


This project is licensed under the MIT License.


An ember-cli addon which injects Conekta.js as an Ember Service




No packages published
You can’t perform that action at this time.