{"_id":"card.io.cordova.mobilesdk","_rev":"85-091409a76340ddef1c316308848df694","name":"card.io.cordova.mobilesdk","dist-tags":{"latest":"2.1.0"},"versions":{"2.0.0":{"name":"card.io.cordova.mobilesdk","version":"2.0.0","keywords":["card.io","sdk","card-scanning","ecosystem:cordova","cordova-ios","cordova-android"],"author":{"name":"card.io"},"license":"MIT License, see LICENSE for details","_id":"card.io.cordova.mobilesdk@2.0.0","maintainers":[{"name":"paypal","email":"DL-PP-NODEJS-SDK@paypal.com"}],"homepage":"https://github.com/card-io/card.io-Cordova-Plugin#readme","bugs":{"url":"https://github.com/card-io/card.io-Cordova-Plugin/issues"},"dist":{"shasum":"9d5886d3bf13e1f9cec934bb50d6359b3d9159a9","tarball":"https://registry.npmjs.org/card.io.cordova.mobilesdk/-/card.io.cordova.mobilesdk-2.0.0.tgz","integrity":"sha512-j2UMtGm2SeG46L8BE+NiH7vwj9ssGWDmxNgVjY1t1t1kFXMPXBvC4LgZr0RrKpKRxVVUt6uv6xc/2nU5nOp99g==","signatures":[{"sig":"MEYCIQCuoiBoN8GcY/dk7O+H353PIV7RJTzFSAeWYG8ycoYr0wIhAKbIgqtAUfVovqQZzjVtTIqqxjuCdlQTRE2poZP5rpaT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","_shasum":"9d5886d3bf13e1f9cec934bb50d6359b3d9159a9","cordova":{"id":"card.io.cordova.mobilesdk","platforms":["ios","android"]},"engines":[{"name":"cordova","version":">=3.0.0"}],"gitHead":"1f5697d1c630716b79dc980bd049ed0e093da28c","scripts":{},"_npmUser":{"name":"paypal","email":"DL-PP-NODEJS-SDK@paypal.com"},"repository":{"url":"git+ssh://git@github.com/card-io/card.io-Cordova-Plugin.git","type":"git"},"_npmVersion":"3.3.12","description":"This plugin allows to add card.io scanning capabilities to your application using card.io SDK Native library","directories":{},"_nodeVersion":"5.1.1","_npmOperationalInternal":{"tmp":"tmp/card.io.cordova.mobilesdk-2.0.0.tgz_1463081222386_0.3136319681070745","host":"packages-12-west.internal.npmjs.com"}},"2.0.1":{"name":"card.io.cordova.mobilesdk","version":"2.0.1","keywords":["card.io","sdk","card-scanning","ecosystem:cordova","cordova-ios","cordova-android"],"author":{"name":"card.io"},"license":"MIT License, see LICENSE for details","_id":"card.io.cordova.mobilesdk@2.0.1","maintainers":[{"name":"paypal","email":"DL-PP-NODEJS-SDK@paypal.com"}],"homepage":"https://github.com/card-io/card.io-Cordova-Plugin#readme","bugs":{"url":"https://github.com/card-io/card.io-Cordova-Plugin/issues"},"dist":{"shasum":"0caccd3c2801445401e334ce86592b87afb41bd4","tarball":"https://registry.npmjs.org/card.io.cordova.mobilesdk/-/card.io.cordova.mobilesdk-2.0.1.tgz","integrity":"sha512-py1pfC8KMS9qTZx2E6Uf543Ls9iTZRWn3rAMe12ILE6frEAq2usNRPRhvDigNBKaezJx/bEcCsx9b37Xpr6qtw==","signatures":[{"sig":"MEYCIQCqm37p71Jl7tClI93bgxbBQYqN7MTXV76adZB9rf0dJwIhAIwI3AFoZ0vijfFl+NhgWQGDAi3lns9eC0Z+qlM1fOWD","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","_shasum":"0caccd3c2801445401e334ce86592b87afb41bd4","cordova":{"id":"card.io.cordova.mobilesdk","platforms":["ios","android"]},"engines":[{"name":"cordova","version":">=3.0.0"}],"gitHead":"1346244886dc1a27181928755cf5177608f0cf28","scripts":{},"_npmUser":{"name":"paypal","email":"DL-PP-NODEJS-SDK@paypal.com"},"repository":{"url":"git+ssh://git@github.com/card-io/card.io-Cordova-Plugin.git","type":"git"},"_npmVersion":"3.3.12","description":"This plugin allows to add card.io scanning capabilities to your application using card.io SDK Native library","directories":{},"_nodeVersion":"5.1.1","_npmOperationalInternal":{"tmp":"tmp/card.io.cordova.mobilesdk-2.0.1.tgz_1463083002129_0.06606629933230579","host":"packages-12-west.internal.npmjs.com"}},"2.0.2":{"name":"card.io.cordova.mobilesdk","version":"2.0.2","keywords":["card.io","sdk","card-scanning","ecosystem:cordova","cordova-ios","cordova-android"],"author":{"name":"card.io"},"license":"MIT License, see LICENSE for details","_id":"card.io.cordova.mobilesdk@2.0.2","maintainers":[{"name":"paypal","email":"DL-PP-NODEJS-SDK@paypal.com"}],"homepage":"https://github.com/card-io/card.io-Cordova-Plugin#readme","bugs":{"url":"https://github.com/card-io/card.io-Cordova-Plugin/issues"},"dist":{"shasum":"b0cfb90da6f3fa0592f64f3c26065d2a3e919f20","tarball":"https://registry.npmjs.org/card.io.cordova.mobilesdk/-/card.io.cordova.mobilesdk-2.0.2.tgz","integrity":"sha512-hpKuUS/ae1G52HpiXu/3ILrT2k8qSMbM9vnOXuqHmTTnJiwGiEikC+NzpNl0MF8Q3Ca8fWvSQN6pEqMYAac0rA==","signatures":[{"sig":"MEYCIQDx3GD1ZK2Tl1Brnf52Xu8kbDLTNv5wtzy271hIpL8a4QIhAOs6kj0OV4QSjG012Ook54U807ZBFOeZjifI/IKhEoU9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","_shasum":"b0cfb90da6f3fa0592f64f3c26065d2a3e919f20","cordova":{"id":"card.io.cordova.mobilesdk","platforms":["ios","android"]},"engines":[{"name":"cordova","version":">=3.0.0"}],"gitHead":"523f4d7bcf6636d147b589b583cce5453d024818","scripts":{},"_npmUser":{"name":"paypal","email":"DL-PP-NODEJS-SDK@paypal.com"},"repository":{"url":"git+ssh://git@github.com/card-io/card.io-Cordova-Plugin.git","type":"git"},"_npmVersion":"2.15.5","description":"This plugin allows to add card.io scanning capabilities to your application using card.io SDK Native library","directories":{},"_nodeVersion":"4.4.5","_npmOperationalInternal":{"tmp":"tmp/card.io.cordova.mobilesdk-2.0.2.tgz_1466451313700_0.5124952711630613","host":"packages-16-east.internal.npmjs.com"}},"2.1.0":{"name":"card.io.cordova.mobilesdk","version":"2.1.0","keywords":["card.io","sdk","card-scanning","ecosystem:cordova","cordova-ios","cordova-android"],"author":{"name":"card.io"},"license":"MIT License, see LICENSE for details","_id":"card.io.cordova.mobilesdk@2.1.0","maintainers":[{"name":"paypal","email":"DL-PP-NODEJS-SDK@paypal.com"}],"homepage":"https://github.com/card-io/card.io-Cordova-Plugin#readme","bugs":{"url":"https://github.com/card-io/card.io-Cordova-Plugin/issues"},"dist":{"shasum":"583b9306f6f28ab54cd9d2c89fc35ed93e851488","tarball":"https://registry.npmjs.org/card.io.cordova.mobilesdk/-/card.io.cordova.mobilesdk-2.1.0.tgz","integrity":"sha512-mjImf1/tqZEDIQUBxS0LoDGGIMpv7Plod9ICTIMUbhXaxYFkbhQFNYGLpYoDZETSlz1sA6aXAm734xTT4KlLaw==","signatures":[{"sig":"MEUCIDNoE27koLs91x5ds0y+rB+Pu/PcdmcZkRs0ACCmbtc3AiEA9Wlz1Uxd5fdNuQ7RRrNcPfIlt4+JJi/df5c6Zqkbwg0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2lhzCRA9TVsSAnZWagAAX4MP/2zX2Axy/7LiTiTV8FL8\nWptlvQBVcKyz6HykbZLY+0qfxosh/X6Ew0uKGYyv0gEoOFRRF6WHkTQspgIW\nDExFiUBAA7GBxh3GdpMumT7p9Ix+I/DXL+Qs7LVz0SXucCLk299YnvpKoSOL\nDLPIXkxije0r/KmEg/ZoCBrOHvkNy/7b0Z7X1+DPWaNQfiobHDgjD7+UvYU0\n7tWwA84OJBodJDWuIDFd0j4KiC5rHjesJr6h7J17DUzoBbK/t+/EIbrTLo9+\niTmbmhgATEdHPCa+Lh1yPD7VftpuTOUEodxG5qnoQJxHr3K44RKI5NjvoOb5\n5+ZPKP83BjbOoQuMNOvXZLAIscUV9D7Kv1z6+wdFPKoxRauR8gkj9vlEaGka\nKyMQh4D0m897S5pXmQ5bSSzPBesnpeiL1eg1ypK67T2Pf4tO0w3AdTtcRa9z\n4+OB5PWmv4zQhe6IljXZTDL33RrQGJVSBlRMrQHYrzgI86olybH9dBXRzF1u\n3Uv5bdt0gG9OSQX7yEem6VFg0pxE9BGL6B8MaXE+OYD7MPFn0K6QqaI8OlP0\nj1dikYEQ+9qY52xhsB5vYxw79ygm97mWeGQ/BwaR89omGjl5K4KX+GsqVcm/\nFoYpW+A3BuHvH2NOT2pqD2Gxo52buG4Fl6M2f/WBX34kef7lQYGK+YfK03eg\nw2MI\r\n=lj94\r\n-----END PGP SIGNATURE-----\r\n"},"_from":".","_shasum":"583b9306f6f28ab54cd9d2c89fc35ed93e851488","cordova":{"id":"card.io.cordova.mobilesdk","platforms":["ios","android"]},"engines":[{"name":"cordova","version":">=3.0.0"}],"gitHead":"c4311e75cd531dc2375aa52fedb74f6998911b9d","scripts":{},"_npmUser":{"name":"paypal","email":"DL-PP-NODEJS-SDK@paypal.com"},"repository":{"url":"git+ssh://git@github.com/card-io/card.io-Cordova-Plugin.git","type":"git"},"_npmVersion":"3.7.3","description":"This plugin allows to add card.io scanning capabilities to your application using card.io SDK Native library","directories":{},"_nodeVersion":"5.9.1","_npmOperationalInternal":{"tmp":"tmp/card.io.cordova.mobilesdk-2.1.0.tgz_1474811646181_0.9013033048249781","host":"packages-12-west.internal.npmjs.com"}}},"time":{"created":"2016-05-12T19:27:04.729Z","modified":"2026-09-29T18:54:39.585Z","2.0.0":"2016-05-12T19:27:04.729Z","2.0.1":"2016-05-12T19:57:18.720Z","2.0.2":"2016-06-20T19:35:50.376Z","2.1.0":"2016-09-25T13:54:37.938Z"},"bugs":{"url":"https://github.com/card-io/card.io-Cordova-Plugin/issues"},"author":{"name":"card.io"},"license":"MIT License, see LICENSE for details","homepage":"https://github.com/card-io/card.io-Cordova-Plugin#readme","keywords":["card.io","sdk","card-scanning","ecosystem:cordova","cordova-ios","cordova-android"],"repository":{"url":"git+ssh://git@github.com/card-io/card.io-Cordova-Plugin.git","type":"git"},"description":"This plugin allows to add card.io scanning capabilities to your application using card.io SDK Native library","maintainers":[{"email":"sdk-integrations-npm@paypal.com","name":"sdk-integrations-npm"},{"email":"sioked@gmail.com","name":"sioked"},{"email":"server-sdks@paypal.com","name":"paypal-sdks"},{"email":"sdk-package-registries@paypal.com","name":"braintree"},{"email":"mpscqw@gmail.com","name":"jfurman"},{"email":"ravi_shekhar00@yahoo.com","name":"ravishekhar00"},{"email":"grjopa@gmail.com","name":"gregjopa"},{"email":"mnicpt@gmail.com","name":"mnicpt"},{"email":"developedbyliz@gmail.com","name":"elizabethmv"},{"email":"nbierdeman@paypal.com","name":"nbierdeman"},{"email":"ryank@remotevisioninc.com","name":"remotevision"},{"email":"rygilbert@paypal.com","name":"rygilbert_paypal"},{"email":"besierra@paypal.com","name":"besierra"},{"email":"rosman21@gmail.com","name":"rosman21"},{"email":"brunson.ws@gmail.com","name":"wsbrunson"},{"email":"yanisimov@paypal.com","name":"yanisimov_paypal"},{"email":"avathalurin@paypal.com","name":"avathalurin"},{"email":"ghislain@gmail.com","name":"gseguin"},{"email":"dustijones@paypal.com","name":"dustijones"},{"email":"du.svp28@gmail.com","name":"sunnypatel"},{"email":"shanjing.dev@gmail.com","name":"csjcsjcsj"},{"email":"bywood@paypal.com","name":"bywood"},{"email":"siqliang@paypal.com","name":"siqliang"},{"email":"ppeelen@paypal.com","name":"ppeeleniz"},{"email":"sraj@paypal.com","name":"supremar"},{"email":"cnallam@paypal.com","name":"cnallam"},{"email":"gabgutierrez@paypal.com","name":"gabrielg-paypal"},{"email":"augreer@paypal.com","name":"augreer8"},{"email":"daniel@bluesuncorp.co.uk","name":"bluepnume"}],"readme":"card.io plug-in for Cordova\n---------------------------\n\nThis plug-in exposes card.io credit card scanning.\n\nNote: If you would like to actually process a credit card charge, you might be interested in the [PayPal Cordova Plug-in](https://github.com/paypal/PayPal-Cordova-Plugin).\n\nMaintenance of this repository\n------------------------------\n\nIf you discover a problem here, please submit an Issue or Pull Request. (Unless, of course, the problem is actually in the underlying card.io SDK for either [iOS](https://github.com/card-io/card.io-iOS-SDK) or [Android](https://github.com/card-io/card.io-Android-SDK). We're always interested in discovering and fixing bugs in our SDKs!)\n\nSupported configurations\n------------------------\n\nThe card.io Cordova plugin provides different configurations that could be set according to your requirements. Here are the list of supported configurations.\n\n|  **Configuration**               | **Type** | **Description** |\n|  :------                         | :------  | :------         |\n|  requireExpiry                   | Boolean  | Expiry information will not be required. |\n|  requireCVV                      | Boolean  | The user will be prompted for the card CVV |\n|  requirePostalCode               | Boolean  | The user will be prompted for the card billing postal code. |\n|  suppressManual                  | Boolean  | Removes the keyboard button from the scan screen. |\n|  restrictPostalCodeToNumericOnly | Boolean  | The postal code will only collect numeric input. Set this if you know the expected country's postal code has only numeric postal codes. |\n|  keepApplicationTheme            | Boolean  | The theme for the card.io Activity's will be set to the theme of the application. |\n|  requireCardholderName           | Boolean  | The user will be prompted for the cardholder name |\n|  scanInstructions                | String   | Used to display instructions to the user while they are scanning their card. |\n|  noCamera                        | Boolean  | If set, the card will not be scanned with the camera. |\n|  scanExpiry                      | Boolean  | If scanExpiry is true, an attempt to extract the expiry from the card image will be made. |\n|  languageOrLocale                | String   | The preferred language for all strings appearing in the user interface. If not set, or if set to null, defaults to the device's current language setting. |\n|  guideColor                      | String   | Changes the color of the guide overlay on the camera. The color is provided in hexadecimal format (e.g. \"#FFFFFF\") |\n|  suppressConfirmation            | Boolean  | The user will not be prompted to confirm their card number after processing. |\n|  hideCardIOLogo                  | Boolean  | The card.io logo will not be shown overlaid on the camera. |\n|  useCardIOLogo                   | Boolean  | The card.io logo will be shown instead of the PayPal logo. |\n|  suppressScan                    | Boolean  | Once a card image has been captured but before it has been processed, this value will determine whether to continue processing as usual. |\n\nIntegration instructions\n------------------------\n\nThe card.io Cordova Plugin adds support for the CardIO iOS and android platform. It uses the native CardIO library. Cordova plugin management will set up all the required capabilities/frameworks for the project. The only bit left for you to do is to add necessary files, as described below.\n\n1.\tFollow the official [Cordova](https://cordova.apache.org) documentation to install command line tools.\n2.\tCreate project, add plugin and platforms:\n\n```bash\n\n   $ cordova create ScanCard com.mycompany.scancard \"ScanCard\"\n   $ cd ScanCard\n   $ cordova platform add ios\n   $ cordova platform add android\n   $ cordova plugin add https://github.com/card-io/card.io-Cordova-Plugin\n```\n\n1.\tFollow Your app integration section below.\n2.\tRun `cordova run ios` or `cordova run android` to build and the project.\n\nSample HTML + JS\n----------------\n\n1.\tIn `ScanCard/www/index.html` add the following to lines after `<p class=\"event received\">Device is Ready</p>`:\n\n```javascript\n      <button id=\"scanBtn\"> Scan Now!</button>\n```\n\n1.\tReplace `ScanCard/www/js/index.js` with the following code:\n\n```javascript\n\n    /*\n     * Licensed to the Apache Software Foundation (ASF) under one\n     * or more contributor license agreements.  See the NOTICE file\n     * distributed with this work for additional information\n     * regarding copyright ownership.  The ASF licenses this file\n     * to you under the Apache License, Version 2.0 (the\n     * \"License\"); you may not use this file except in compliance\n     * with the License.  You may obtain a copy of the License at\n     *\n     * http://www.apache.org/licenses/LICENSE-2.0\n     *\n     * Unless required by applicable law or agreed to in writing,\n     * software distributed under the License is distributed on an\n     * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n     * KIND, either express or implied.  See the License for the\n     * specific language governing permissions and limitations\n     * under the License.\n     */\n    var app = {\n        // Application Constructor\n        initialize: function() {\n            this.bindEvents();\n        },\n        // Bind Event Listeners\n        //\n        // Bind any events that are required on startup. Common events are:\n        // 'load', 'deviceready', 'offline', and 'online'.\n        bindEvents: function() {\n            document.addEventListener('deviceready', this.onDeviceReady, false);\n        },\n        // deviceready Event Handler\n        //\n        // The scope of 'this' is the event. In order to call the 'receivedEvent'\n        // function, we must explicitly call 'app.receivedEvent(...);'\n        onDeviceReady: function() {\n            app.receivedEvent('deviceready');\n        },\n        // Update DOM on a Received Event\n        receivedEvent: function(id) {\n            var parentElement = document.getElementById(id);\n            var listeningElement = parentElement.querySelector('.listening');\n            var receivedElement = parentElement.querySelector('.received');\n\n            listeningElement.setAttribute('style', 'display:none;');\n            receivedElement.setAttribute('style', 'display:block;');\n\n            console.log('Received Event: ' + id);\n\n            app.example();\n        },\n\n        example : function () {\n          var cardIOResponseFields = [\n            \"cardType\",\n            \"redactedCardNumber\",\n            \"cardNumber\",\n            \"expiryMonth\",\n            \"expiryYear\",\n            \"cvv\",\n            \"postalCode\"\n          ];\n\n          var onCardIOComplete = function(response) {\n            console.log(\"card.io scan complete\");\n            for (var i = 0, len = cardIOResponseFields.length; i < len; i++) {\n              var field = cardIOResponseFields[i];\n              console.log(field + \": \" + response[field]);\n            }\n          };\n\n          var onCardIOCancel = function() {\n            console.log(\"card.io scan cancelled\");\n          };\n\n          var onCardIOCheck = function (canScan) {\n            console.log(\"card.io canScan? \" + canScan);\n            var scanBtn = document.getElementById(\"scanBtn\");\n            if (!canScan) {\n              scanBtn.innerHTML = \"Manual entry\";\n            }\n            scanBtn.onclick = function (e) {\n              CardIO.scan({\n                  \"requireExpiry\": true,\n                  \"requireCVV\": false,\n                  \"requirePostalCode\": false,\n                  \"restrictPostalCodeToNumericOnly\": true\n                },\n                onCardIOComplete,\n                onCardIOCancel\n              );\n            }\n          };\n\n          CardIO.canScan(onCardIOCheck);\n        }\n    };\n\n    app.initialize();\n\n```\n\nContributing\n------------\n\nPlease read our [contributing guidelines](CONTRIBUTING.md) prior to submitting a Pull Request.\n\nLicense\n-------\n\nPlease refer to this repo's [license file](LICENSE).\n","readmeFilename":"README.md"}