Invalid value for field credit card number
Invalid value for field credit card number
Question: Q: credit card number is invalid
Posted on Jul 21, 2017 9:29 AM
All replies
Loading page content
Page content loaded
They know what type of card by the first 4 digits of the card. That is an industry standard to help eliminate fraud.
Jul 21, 2017 9:31 AM
The card type says visa up until I put in one of the digits from the last block of 4 but if I change the one number that makes it become an unknown card type to a wrong number it says that I’m using a Visa card so not sure what’s up with that
Jul 21, 2017 9:39 AM
You have likely added too many cards to your account. Apple monitors how often you switch the card associated with your account and will not let you add a new one for a couple of months. Just keep the one you already had on there or use an iTunes card.
I am certain that is the issue, assuming you have already verified that no other issue exists, with you bank.
Are you holding the card in your hand when you type? Did you try scanning? I get the sense you may not have the physical card with you.
In HTML forms, we often required validation of different types. Validate existing email, validate password length, validate confirm password, validate to allow only integer inputs, these are some examples of validation. In a certain input field, only valid credit card numbers are allowed i.e. there not allowed any other string or number which not follow the rule to be a valid credit card. We can also validate these input fields to only accept a valid credit card number using express-validator middleware.
Condition to be a valid credit card number:
Credit card number must follow the Luhn’s algorithm as shown below:
The Luhn Formula:
Example:
Original Number: 4 5 5 6 7 3 7 5 8 6 8 9 9 8 5 5
Drop the last digit: 4 5 5 6 7 3 7 5 8 6 8 9 9 8 5
Reverse the digits: 5 8 9 9 8 6 8 5 7 3 7 6 5 5 4
Multiple odd place digits by 2: 10 8 18 9 16 6 16 5 14 3 14 6 10 5 8
Subtract 9 to numbers over 9: 1 8 9 9 7 6 7 5 5 3 5 6 1 5 8
Add all numbers: 1 8 9 9 7 6 7 5 5 3 5 6 1 5 8 = 85
Mod 10: 85 modulo 10 = 5 (last digit of card)
Command to install express-validator:
Steps to use express-validator to implement the logic:
Note: Here we use local or custom database to implement the logic, the same steps can be followed to implement the logic in a regular database like MongoDB or MySql.
Example: This example illustrates how to validate an input field to only allow a valid credit card number.
Error Code 14: Invalid Card Number
Date Updated: Nov 19 2021
Caroline McMullen 2 min read
If you run a credit card and see an error code pop up, it may be error code 14. Oftentimes when you get an error code, it’s because of a problem with the credit card issuer. Depending on the situation, the error code you see may be the difference between making the sale and having to turn the customer away. One code that appears more often than not is error code 14, which denotes an invalid card number. Read on to learn more about what error codes are, what credit card error code 14 means, and how to resolve it.
What is an Error Code?
When a payment processor cannot process a transaction, they return a credit card decline code, hold code, or error code.
There are several reasons why a credit card transaction may fail to go through, each with its own corresponding code. Error codes help terminal users because they can look up the code, find out the cause of the error or decline, and use that information to figure out the best solution.
Some common causes for error codes include fraudulent activity, running a card several times in a short period, incorrect information, or other similar issues. If you accept credit and debit cards, you must arm yourself with the knowledge of how to handle error codes so you can help your customers and complete your sales.
Invalid Card Number: What Does It Mean?
You may be asking yourself, what is an error code 14? Error code 14 simply means an invalid card number was entered. It is one of the most common error codes that appear, and one of the easiest to fix. It often means the terminal user made a small mistake when keying in the card information, and one or more digits are incorrect.
The invalid number could be the actual credit card number, expiration date, zip code, or CVV. Whichever number it is, error code 14 signals it has been incorrectly entered.
How to Clear Your Error Code 14
Clearing credit card error code 14 is very easy to do. Simply re-enter the credit card number carefully and accurately, and the error code should not come up again. With the right card number, the transaction can now go through and you can complete the sale. Compared to other error codes, this is a quick fix. Many result in a customer being unable to purchase their item until they speak with their card issuer.
If your payment processor declined a transaction due to error code 14, there is no need to fret. Now you know what an error code is and just how to resolve it. With this information, you can guide your customer as you resolve the problem with ease.
Caroline is a writer and editor based in Los Angeles, CA. She has been working in the writing sphere for the last five years, covering everything from breaking news to lifestyle features, and now digital payments. Caroline is currently a Marketing Coordinator at PaymentCloud, a merchant services provider that offers hard-to-place solutions for business owners across the nation.
7 Reasons for Cash App Invalid Card Number – Fix “Invalid Card” error
A Cash App invalid card number means that the card is not valid. The bank that issued the card has apparently blocked it. If not, check if you are entering the correct Card details, CVV, name, Card is not authorized for Internet transactions, not activated and the Card is not supported by Cash App.
Does Cash App keep saying “invalid card number” each time you attempt registering your debit card in the app?
Continue reading to learn more about the topic.
Cash App is a fantastic user-friendly platform that’s great for sending and receiving funds, as well as making payments for purchases.
However, while using Cash App, you might face a Cash App “invalid card number” glitch, which is getting in your way of enjoying the amazing services the app offers. Linking your card and bank account makes it easier to fund your Cash App wallet.
This article will walk you through the reasons your card is said to be invalid. We’ll also show you what to do if you can’t link your card on the app.
So, without further ado, let’s delve in!
What Does “Invalid Card Number” Mean?
An “invalid card number” pop-up is essentially trying to tell you that your card is probably closed by the issuer.
But if the card isn’t closed, then why is Cash App saying your card number is invalid?
Why Is Cash App Saying “Invalid Card Number”?
There may be various reasons you’re unable to link your debit card to your Cash App and hence receive “invalid card number” messages. Let’s have a look at some of them.
1. The Card Is Expired
If you’re having trouble linking your debit card to Cash App, then you should check if your card has expired or not.
You may have noticed a date on the front of your debit card. That date is the expiration date of your card.
Usually, cards are valid for three to four years after the date of issue.
2. You May Be Entering the Wrong Card Details
This is a common cause of most Cash App debit card declines.
You need to enter the card details more carefully and make sure that you don’t make any errors.
Here are a few details on your card that you could be entering wrong into Cash App.
The Card Number
The card number is made up of 16 digits. Considering the number of characters, it can be very easy to swap digits while entering them.
After entering the numbers, go over them before hitting the submit button.
CVV Number
Aside from the card number, you can also enter the wrong CVV number. CVV (Credit Verification Value) is a security feature common with banking transactions.
The CVV number is a set of 3 to 4 digits normally found on the back of your card. It’s sometimes called the card verification code or a security code.
Expiry Date
Your card’s expiration date is imprinted on the front of it, written in the month/year format.
Entering the date in the right format is as important as entering the right digits.
Card Holder Name
The last detail is the card holder’s name which is boldly imprinted on the front of the card.
You shouldn’t include names that aren’t on the card, and the names must be entered in the right order, as well.
3. Your Card Isn’t Activated
If you order a new card and attempt to add the non-activated card to Cash App, the app can decline your card.
You can contact your bank to guide you through the activation process or when you run into any glitches while doing so.
4. Cash App Doesn’t Support Your Card
Cash App doesn’t accept PayPal, business debit, or ATM cards. Therefore, you’ll be sent an “invalid card number” notification if you try to link cards from these providers.
5. You Have Linked the Wrong Bank Account
Linking the wrong bank account may be another reason Cash App is stopping you from going through with your card linking process.
Make sure you have linked the bank account connected to your debit card before you attempt to register the card in the app.
6. Your Card Isn’t Authorized for Internet Transactions
Cash App can also decline your card if it hasn’t been authorized for a particular type of internet transaction.
For example, some cards are only allowed to be used for specific transactions like healthcare. If that may be the problem, then contacting your bank about it is the best option.
7. Your Application Is Outdated
Cash App might give you the “invalid card number” message if the app’s version is outdated. So make sure to update Cash App on your device.
After you update your Cash App version, clear the app’s cache and data using the following steps:
If you’ve tried everything and the issue persists, the next thing to do is to contact your bank. It might have a solution to your problem.
However, if the bank tells you that everything is clear from its side, then your only option is to contact Cash App Support.
How to Contact Cash App Support
You can contact Cash App through the application by visiting the “Support” section. The following steps will help you:
You can also reach Cash App by calling 1(800) 969-1940.
Last Words
There are many features and services available to explore on Cash App. However, you may also face issues like linking your card, among many others.
In all, we learned what it means when we get an “invalid card number” message from Cash App.
We have also explained the actions and inactions that can cause Cash App to decline our cards and how we can fix them.
Why do I see ‘Invalid Credit Card Number’ when trying to enter a credit card or pay my bill?
Issue
Your invoice payment has been declined and you are receiving the message ‘Invalid Credit Card Number’ on your Dashboard.
Resolution
When you select Pay Now in the Billing section of your Dashboard, you may receive the message Invalid Credit Card Number. This indicates a problem with the information entered for the card. Double-check the credit card number, expiration date, and CVV. If you haven’t already, also ensure that the card has been activated.
Billing address (AVS) discrepancies will not usually cause this error message. However, if the card is from outside of the US, you may be receiving this error message due to address formatting. Pay close attention to the way you enter your billing address differs from the way it appears on your statement your bank. This includes ensuring the separation of Line 1 and Line 2 of the address.
Alternatively, some banking institutions may be screening vendors like Heroku for security reasons and blocking the transaction. In this case, we recommend speaking to your bank about allowing Heroku transactions to be accepted.
Please view our knowledge base article on card declines for more information:
Ask on Stack Overflow
Engage with a community of passionate experts to get the answers you need
Heroku Support
Create a support ticket and our support experts will get back to you
Credit Card Number Validation Using jQuery

Today we are going to understand, how to do credit card number validation using jQuery. Most of the eCommerce website use transaction via credit card. Than you always need credit card number validation at client side.
We are using an HTML form to validate credit card input data. When user submit information via form than the jQuery code will be called to validate it.
For this validation we are using jQuery Credit Card Validator library. This library will detect credit card type, length and validate the card type.
How jQuery Credit Card Validator Plugin Works:
jQuery Credit Card Validator is a jQuery plugin which will take input as a card number returns an object with four properties. Check out below object properties explanation:
– card_type — Return an object with described below properties, or null if card type unknown
– valid — Return true if the number is valid, otherwise gives false
– length_valid — Return true value if the card number length is valid, false otherwise
– luhn_valid — Return true if the Luhn checksum is correct, otherwise false
Include jQuery & Credit Card Validator Library:
Include the jQuery library in HTML form page.
Include the Credit Card Validator jQuery library to validate card number.
Now write down an HTML form code to take credit card input. Initialize the input card number text by for validation library.
Cybersource Developer Community Cybersource Developer Community
We encountered the following error in our production logs:
Result code: null; Message: The field length is invalid for Card Number.
Our UI validation enforces the credit card length to be between 13 and 16 characters, as documented on the authorize.net website.
Are there additional validations performed on the payment gateway side when an account is in PRODUCTION mode compared to a TEST account? Do we have to match the length of the credit card to the credit card type? For example, if a customer has a VISA card, but enters less than 16 characters, does that throw the above exception? If so, shouldn’t it be the same in a TEST account?
Any help is greatly appreciated.
VISA, for instance, always starts with a 4 and always has 16 digits.
I entered the test VISA card number I received from Authorize.Net when I signed up for a test account. The card number is 13 digits long and I was able to create an account in CIM.
Then, I used the same card number, but added a «9» at the end. So the card number length was 14 digits and it still worked.
Looks like it doesn’t match the card type to the card number length. However, could there be a difference between a test account and a production account? Are production accounts stricter in verifying valid cards / types?
There are multiple ways we validate the card number, but the length is not one of them because it is not formally specified by the card companies. Every Visa card you ever see may be 16 digits, but there is nothing in their standards that says a 15 digit Visa is absolutely invalid.
We primarily validate the following:
1. We perform a mod-10 mathematical check on the card number to confirm that it at least has the possibility of being valid.
2. We confirm that the bin number (first 6 digits of the card) is valid and assigned to one of our supported card types. It is the BIN number that tells us the card type.
Things that are validated on production accounts are the card number (making sure its valid), expiration date (needs to be a future date), the card code and address—both will be verified if your settings are set to check this (Merchant Interface-Account tab-Security Settings- you will see AVS and Card Code Settings). You do not need to match the length of the credit card to the card type because you don’t need to pass the card type—it is automatically determined based on the credit card number entered.
braintree/card-validator
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Credit Card Validator
Credit Card Validator provides validation utilities for credit card data inputs. It is designed as a CommonJS module for use in Node.js, io.js, or the browser. It includes first class support for ‘potential’ validity so you can use it to present appropriate UI to your user as they type.
A typical use case in a credit card form is to notify the user if the data they are entering is invalid. In a credit card field, entering “411” is not necessarily valid for submission, but it is still potentially valid. Conversely, if a user enters “41x” that value can no longer pass strict validation and you can provide a response immediately.
Credit Card Validator will also provide a determined card type (using credit-card-type). This is useful for scenarios in which you wish to render an accompanying payment method icon (Visa, MasterCard, etc.). Additionally, by having access to the current card type, you can better manage the state of your credit card form as a whole. For example, if you detect a user is entering (or has entered) an American Express card number, you can update the maxlength attribute of your CVV input element from 3 to 4 and even update the corresponding label from ‘CVV’ to ‘CID’.
Using a CommonJS build tool (browserify, webpack, etc)
var valid = require(‘card-validator’);
valid.number(value: string, [options: object]): object
You can optionally pass luhnValidateUnionPay as a property of an object as a second argument. This will override the default behavior to ignore luhn validity of UnionPay cards.
You can optionally pass maxLength as a property of an object as a second argument. This will override the default behavior to use the card type’s max length property and mark any cards that exceed the max length as invalid.
If a card brand has a normal max length that is shorter than the passed in max length, the validator will use the shorter one. For instance, if a maxLength of 16 is provided, the validator will still use 15 as the max length for American Express cards.
A fake session where a user is entering a card number may look like:
| Input | Output | Suggested Handling | |||
|---|---|---|---|---|---|
| Value | card.type | isPotentiallyValid | isValid | Render Invalid UI | Allow Submit |
| » | null | true | false | no | no |
| ‘6’ | null | true | false | no | no |
| ’60’ | ‘discover’ | true | false | no | no |
| ‘601’ | ‘discover’ | true | false | no | no |
| ‘6011’ | ‘discover’ | true | false | no | no |
| ‘601’ | ‘discover’ | true | false | no | no |
| ’60’ | ‘discover’ | true | false | no | no |
| ‘6’ | null | true | false | no | no |
| » | null | true | false | no | no |
| ‘x’ | null | false | false | yes | no |
| » | null | true | false | no | no |
| ‘4’ | ‘visa’ | true | false | no | no |
| ’41’ | ‘visa’ | true | false | no | no |
| ‘411’ | ‘visa’ | true | false | no | no |
| ‘4111111111111111’ | ‘visa’ | true | true | no | yes |
| ‘411x’ | null | false | false | yes | no |
valid.cardholderName(value: string): object
The cardholderName validation essentially tests for a valid string greater than 0 characters in length that does not look like a card number.
If a cardholder name is comprised of only numbers, hyphens and spaces, the validator considers it to be too card-like to be valid, but may still be potentially valid if a non-numeric character is added. This is to prevent card number values from being sent along as the cardholder name but not make too many assumptions about a person’s cardholder name.
If a cardholder name is longer than 255 characters, it is assumed to be invalid.
valid.expirationDate(value: string|object, maxElapsedYear: integer): object
The maxElapsedYear parameter determines how many years in the future a card’s expiration date should be considered valid. It has a default value of 19, so cards with an expiration date 20 or more years in the future would not be considered valid. It can be overridden by passing in an integer as a second argument.
expirationDate will parse strings in a variety of formats:
| Input | Output |
|---|---|
| ’10/19′ ’10 / 19′ ‘1019’ ’10 19′ | |
| ’10/2019′ ’10 / 2019′ ‘102019’ ’10 2019′ ’10 19′ | |
| ‘2019-10’ | |
| | |
valid.expirationMonth(value: string): object
valid.expirationYear(value: string, maxElapsedYear: integer): object
expirationYear accepts 2 or 4 digit years. 16 and 2016 are both valid entries.
The maxElapsedYear parameter determines how many years in the future a card’s expiration date should be considered valid. It has a default value of 19, so cards with an expiration date 20 or more years in the future would not be considered valid. It can be overridden by passing in an integer as a second argument.
valid.cvv(value: string, maxLength: integer): object
The cvv validation by default tests for a numeric string of 3 characters in length. The maxLength can be overridden by passing in an integer as a second argument. You would typically switch this length from 3 to 4 in the case of an American Express card which expects a 4 digit CID.
valid.postalCode(value: string, [options: object]): object
The postalCode validation essentially tests for a valid string greater than 3 characters in length.
You can optionally pass minLength as a property of an object as a second argument. This will override the default min length of 3.
Custom Card Brands
We use nvm for managing our node versions, but you do not have to. Replace any nvm references with the tool of your choice below.
Validating and Formatting Payment Card Text Fields in Flutter
I am going to walk us through the steps of validating payment (debit/credit) cards number, expiry date and CVV. Among other things, this is basically building on the already existing features of the TextFormField widget.
We’ll start with the card number: it will be validated and the appropriate icon of the issuer displayed.
Before, you continue, please make sure you know how to validate forms in Flutter.
Validating Payment Card Number, Determining its Issuer and Formatting the Text Field
Payment card numbers might appear random, but they actually follow a certain pattern. The length varies from 8 to 19 digits and while the authenticity of these numbers can be verified using the Luhn algorithm, the first six digits can be used to determine the card issuer. For example, numbers starting with 4 are issued by Visa while those issued by Verve starts from 5060, 5061, 5078, 5079, or 6500. You can check this Wikipedia page for the full article.
We’ll create an enumeration of all the card types we wish to support. For example purposes, I keep it down to just three viz. Verve, MasterCard and Verve.
We’ll also create a class to hold the fields of the card:
Now, we’ll create a TextFormField for entering the card number.
This function uses CardUtils.getCardTypeFrmNumber to determine the card issuer from the number already entered by the user.
CardUtils.getCleanedNumber uses regex to remove any non-digit from the inputted number. Confused? You thought that’s what WhitelistingTextInputFormatter. digitsOnly is supposed to do, right? I will explain later.
CardUtils.getCardTypeFrmNumber too uses regex to match the starting characters of the number against a pre-determined set of numbers:
After determining the card issuer, we use:
to update the widget state.
3. Next, CardUtils.getCardIcon returns the appropriate issuer icon. By now, you should have added image assets of the card types you’re supporting. Now, we’ll write a switch statement to check for the card types and return the appropriate widget.
In my project, images live in projectDirectory/assets/images.
5. The actual validation is done in validator. We’ll pull off this validation with Luhn’s algorithm:
To learn more about Luhn’s Algorithm and how it works, please check this stackoverflow answer.
Formatting Card Number Text Field
To improve readability, we can format the TextFormField to automatically add double spaces after every fourth character inputted by the user. Remember inputFormatters I talked about earlier? We will extend TextInputFormatter and add an instance of it to the list of inputFormatters we already have.
It’s pertinent to note that the extra characters added doesn’t add the length of the characters counted by LengthLimitingTextInputFormatter.
So inputFormatters for the TextFormField now becomes:
How to Validate Payment Card Expiry Date and Format the Text Field.
A valid expiry card is one whose month is from 1 to 12 (i.e. January to December) and whose year is not negative. Also, an unexpired date should be the be latter than this month or year. We should keep this in mind while validating the expiry date.
That’s the nitty-gritty of the TextFormField for inputting expiry month.
Part of the for loop is the only difference.
3. CardUtils.validateDate actually checks that the expiry date is valid and has not expired.
How to Validate Payment Card CVV and Format the TextField.
This is the simplest. Payments cards CVV is either 3 or 4 digits. It can’t be less/more than that.
CardUtils.validateCVV is quite straight forward. We just ensure that the value entered by the user is not empty and it’s not less than 3 or more than 4 digits:
Wrapping it all up
For easier validation, all the TextFormFields should be children of the Form widget.
Then throw in a button that does nothing but call _validateInputs :
I have pushed a project that you can clone and test out the above features. I also added support for more payments cards like Discover, American Express, Diners Club, and JCB.
Validate a Credit Card Number with Functional JavaScript
Credit card companies are responsible for a high volume of highly sensitive global network traffic per minute with no margin for error. These companies need to ensure they are not wasting resources processing unnecessary requests. When a credit card is run, the processor has to look up the account to ensure it exists, then query the balance to ensure the amount requested is available. While an individual transaction is cheap and small, the scales involved are enormous.
There were 39.2 million transactions per day in the UK alone in 2016. The linked analysis projects 60 million for that region by 2026. Clearly, anything that can reduce load is necessary to explore.
This is a beginner-level post. Some familiarity with JavaScript is assumed but not necessarily functional programming.
What’s In A Number
At a glance, a credit card number just appears to be a sequence of digits. You may have noticed that the major processing providers have their own prefixes. Visa cards all start with a 4, MasterCard with 5, Discover with 6, and American Express are 3 (and 15 digits instead of 16). Further, financial institutions will have their own 4-6 digit prefixes. People who work at point of sale systems or are otherwise involved with financial processing will notice these patterns quickly. For example, Discover credit cards start with 6011, a 4117 will be a Bank of America debit card, and 5417 is Chase Bank. This is known as the BIN, or Bank Identification Number. There’s a large list here.
However, this is all a network routing concern, and still adds to the network’s load to resolve. To try to ensure all lookup requests actually correspond to real accounts, all numbers have a checksum built in, which is a means of detecting errors in data. A credit card number consists of your card provider’s BIN attached to your individual account number, but the final digit is a checksum digit which can be used to validate for errors without ever querying a server.
Protip
«I’m a BIN and routing number encyclopedia» is a terrible party icebreaker. If you’ve really gotta flex this side of you, ease in with zipcodes or something first. Read the room.
Luhn algorithm
The specific type of checksum is called the Luhn formula, US Patent 2,950,048 (but public domain since 1977). To validate a number via the Luhn algorithm, you add a check digit. Then, after performing the formula on the original number, you see if this check digit corresponds to your result.
Split the full number into individual digits.
Start with the rightmost excluding the check digit and double every second, moving left.
If any of those doubled digits ended up greater than 9, add the digits together (or subtract 9, if that’s your jam).
Take the sum of all the digits and the check digit.
If the total modulo 10 equals 0, the number is valid.
For an example, the number 4012-8888-8888-1881 is a valid Visa-formatted account number, used for testing. You can’t charge it, but it should validate with this algorithm.
Is it a multiple of 10? Yep!
This number checks out, it could possibly be a valid Visa card so we’re clear to make the network request.
Implement
To follow along, you’ll need Node. I’m using pnpm, feel free to use npm or yarn instead. Create a new project:
Exit fullscreen mode
Throw a stub into index.js to get hooked up:
Exit fullscreen mode
Unit tests
Before hopping into the implementation, it’s a good idea to have some unit tests ready to go. Add mocha :
Exit fullscreen mode
Exit fullscreen mode
Now add the following tests to test/test.js :
Exit fullscreen mode
Don’t worry, those aren’t real accounts, just some valid test numbers from here.
As expected, running npm test should confirm that our stub has some work to do:
Exit fullscreen mode
I’m sticking to a functional style for this implementation, wherein instead of mutating state and looping we’ll get to the final result by defining transformations over data.
Split Digits
Exit fullscreen mode
The regular expression uses ^ to match anything that isn’t a digit from 0-9. The trailing g indicates we want to match globally and replace all matches found with nothing (removing it from the string). If omitted, only the first match is replaced and the remaining string is untouched. Then, we split into individual characters, one per digit, and convert them all from characters to numeric values.
Set The Stage
Exit fullscreen mode
To get to our final validation, we’re going to perform a series of transformations on this digit array to reduce it to a final total. A valid number will produce a result that’s a multiple of 10:
Exit fullscreen mode
Get The Total
We already talked this through in English. Let’s take a stab in pseudocode:
Exit fullscreen mode
We’ve got to do that doubling step on the correct numbers in the account number, then transform anything that ended up with multiple digits, then get the total of everything together.
For this step, we can use Array.prototype.slice() to get a subset of the digits array that has everything except for the check digit. Going right-to-left can be achieved with Array.prototype.reverse() :
Exit fullscreen mode
Exit fullscreen mode
Define Transformations
Exit fullscreen mode
This works somewhat like the ternary operator but as a function. Each instance of this is just a specified case of a conditional transform:
Exit fullscreen mode
Wrapping Up
Putting it all together:
Exit fullscreen mode
Check it out with pnpm test :
Exit fullscreen mode
This algorithm is used for a variety of different types of data verification, not just credit card numbers. Maybe you could integrate it into your next project’s design! Adding a checksum to your DB keys can help protect against data transmission errors, and very simple verification like this is easy to get started with.
Challenge
Extend this code to provide a method that can add a correct Luhn checksum to any arbitrary number. The check digit will be the number you need to add to your total to get to multiple of 10.
Credit Card Validator

Credit Card Validator provides validation utilities for credit card data inputs. It is designed as a CommonJS module for use in Node.js, io.js, or the browser. It includes first class support for ‘potential’ validity so you can use it to present appropriate UI to your user as they type.
A typical use case in a credit card form is to notify the user if the data they are entering is invalid. In a credit card field, entering “411” is not necessarily valid for submission, but it is still potentially valid. Conversely, if a user enters “41x” that value can no longer pass strict validation and you can provide a response immediately.
Credit Card Validator will also provide a determined card type (using credit-card-type). This is useful for scenarios in which you wish to render an accompanying payment method icon (Visa, MasterCard, etc.). Additionally, by having access to the current card type, you can better manage the state of your credit card form as a whole. For example, if you detect a user is entering (or has entered) an American Express card number, you can update the maxlength attribute of your CVV input element from 3 to 4 and even update the corresponding label from ‘CVV’ to ‘CID’.
Download
Example
Using a CommonJS build tool (browserify, webpack, etc)
var valid = require(‘card-validator’);
valid.number(value: string, [options: object]): object
You can optionally pass luhnValidateUnionPay as a property of an object as a second argument. This will override the default behavior to ignore luhn validity of UnionPay cards.
You can optionally pass maxLength as a property of an object as a second argument. This will override the default behavior to use the card type’s max length property and mark any cards that exceed the max length as invalid.
If a card brand has a normal max length that is shorter than the passed in max length, the validator will use the shorter one. For instance, if a maxLength of 16 is provided, the validator will still use 15 as the max length for American Express cards.
A fake session where a user is entering a card number may look like:
| Input | Output | Suggested Handling | |||
|---|---|---|---|---|---|
| Value | card.type | isPotentiallyValid | isValid | Render Invalid UI | Allow Submit |
| » | null | true | false | no | no |
| ‘6’ | null | true | false | no | no |
| ’60’ | ‘discover’ | true | false | no | no |
| ‘601’ | ‘discover’ | true | false | no | no |
| ‘6011’ | ‘discover’ | true | false | no | no |
| ‘601’ | ‘discover’ | true | false | no | no |
| ’60’ | ‘discover’ | true | false | no | no |
| ‘6’ | null | true | false | no | no |
| » | null | true | false | no | no |
| ‘x’ | null | false | false | yes | no |
| » | null | true | false | no | no |
| ‘4’ | ‘visa’ | true | false | no | no |
| ’41’ | ‘visa’ | true | false | no | no |
| ‘411’ | ‘visa’ | true | false | no | no |
| ‘4111111111111111’ | ‘visa’ | true | true | no | yes |
| ‘411x’ | null | false | false | yes | no |
valid.cardholderName(value: string): object
The cardholderName validation essentially tests for a valid string greater than 0 characters in length that does not look like a card number.
If a cardholder name is comprised of only numbers, hyphens and spaces, the validator considers it to be too card-like to be valid, but may still be potentially valid if a non-numeric character is added. This is to prevent card number values from being sent along as the cardholder name but not make too many assumptions about a person’s cardholder name.
If a cardholder name is longer than 255 characters, it is assumed to be invalid.
valid.expirationDate(value: string|object, maxElapsedYear: integer): object
The maxElapsedYear parameter determines how many years in the future a card’s expiration date should be considered valid. It has a default value of 19, so cards with an expiration date 20 or more years in the future would not be considered valid. It can be overridden by passing in an integer as a second argument.
expirationDate will parse strings in a variety of formats:
| Input | Output |
|---|---|
| ’10/19′ ’10 / 19′ ‘1019’ ’10 19′ | |
| ’10/2019′ ’10 / 2019′ ‘102019’ ’10 2019′ ’10 19′ | |
| ‘2019-10’ | |
| | |
valid.expirationMonth(value: string): object
valid.expirationYear(value: string, maxElapsedYear: integer): object
expirationYear accepts 2 or 4 digit years. 16 and 2016 are both valid entries.
The maxElapsedYear parameter determines how many years in the future a card’s expiration date should be considered valid. It has a default value of 19, so cards with an expiration date 20 or more years in the future would not be considered valid. It can be overridden by passing in an integer as a second argument.
valid.cvv(value: string, maxLength: integer): object
The cvv validation by default tests for a numeric string of 3 characters in length. The maxLength can be overridden by passing in an integer as a second argument. You would typically switch this length from 3 to 4 in the case of an American Express card which expects a 4 digit CID.
valid.postalCode(value: string, [options: object]): object
The postalCode validation essentially tests for a valid string greater than 3 characters in length.
You can optionally pass minLength as a property of an object as a second argument. This will override the default min length of 3.
Custom Card Brands
Design decisions
Development
We use nvm for managing our node versions, but you do not have to. Replace any nvm references with the tool of your choice below.
List of Credit Card Declined Codes – Error Codes Explained
Declined credit cards are a common occurrence in any business environment, but they are especially common in B2C, high-transaction volume companies.
Whatever point-of-sale system you use, it should deliver a specific code number along with the decline receipt, but that won’t help give you the “why” without having the definitions of those codes.
Having these credit card decline codes on hand helps you provide better customer service by way of a more thoughtful and thorough explanation.
We’ve compiled a list of the most common denial reasons below, and if you can’t find the code here, we recommend contacting your POS provider directly.
List of common credit card declined codes
01 – Refer to issuer
The issuing bank (Visa, Mastercard, etc.) prevented the transaction.
Ask for a separate card to complete the transaction and/or ask the customer to call their credit card bank and figure out why the transaction was declined.
02 – Refer to issuer (special condition)
Just like Code 01, the issuing bank (Visa, Mastercard, etc.) prevented the transaction.
04 – Pick up card (no fraud)
The issuing bank (Visa, Mastercard, etc.) prevented the transaction.
05 – Do not honor
The issuing bank (Visa, Mastercard, etc.) prevented the transaction and is also telling you not to honor the card.
Ask for a separate card to complete the transaction and/or ask the customer to call their credit card bank and figure out why the transaction was declined.
07 – Pick up card, special condition (fraud account)
The issuing bank (Visa, Mastercard, etc.) prevented the transaction because it has flagged this account as fraudulent.
If it’s for a one-time transaction, do not run the card again, and don’t provide any more goods or services for the cardholder. If it was a recurring or scheduled transaction, follow up with your customer to make sure your business wasn’t incorrectly flagged as fraudulent. Ask that they follow up with their bank OR update their account with a newly provided card.
12 – Invalid transaction
The transaction you’re attempting is invalid — e.g. refunding a refund.
Make sure you’re transacting the right payment types and double-check that all payment batches are correctly configured.
13 – Invalid amount
The number field you attempted to transact was invalid. This usually is the result of a typo (negative amount or ineligible symbol).
Double-check what you entered and make sure it wasn’t negative or included incorrect symbols.
14 – Invalid card number
The card number is invalid, and your terminal is having trouble finding the relevant account.
Double-check the account number given and try again.
15 – No such issuer
The card number entered is wrong since it doesn’t start with a 3 (AMEX), 4 (Visa), 5 (MasterCard), or 6 (Discover).
Double-check the card number entered.
19 – Re-enter
An unknown error occurred.
Try it again, and if it continues, contact your merchant provider.
28 – File is temporarily unavailable
A temporary error occurred during the authorization process.
Try it again, and if the problem continues, contact your merchant provider.
41 – Lost card, pick up (fraud account)
The right owner has reported this card as lost or stolen, and the issuing bank has denied the transaction as a result.
Don’t try the transaction again and do not provide any additional goods or services to the cardholder. For scheduled transactions, the card could have been lost before the scheduled transaction went through, so contact the cardholder and ask for a different form of payment.
43 – Stolen card, pick up (fraud account)
The right owner has reported this card as lost or stolen, and the issuing bank has denied the transaction as a result.
Don’t try the transaction again and do not provide any additional goods or services to the cardholder. Make sure you report the transaction attempt to the relevant issuing bank. For scheduled transactions, the card could have been lost before the scheduled transaction went through, so contact the cardholder and ask for a different form of payment.
51 – Insufficient funds
The customer’s issuing bank has denied the transaction because either the customer is already over their credit limit or that transaction will put the customer’s credit card over the limit.
Either ask the customer to call their issuing bank and request a credit limit or request a different form of payment.
54 – Expired card
The expiration date entered is in the past.
Double-check you entered it correctly, ask the customer to confirm the expiration date with their issuing bank, or request an alternate payment method.
This code will appear if you are attempting a transaction and your customer’s card is not configured for that type of transaction.
Have your customer call their issuing bank (the number is typically printed on the back of the credit card) and ask that the transaction be permitted. When the bank confirms it will process correctly, attempt the transaction again.
This code will appear if you are attempting a transaction and your merchant processing account is not properly configured.
Contact your merchant provider and make sure your terminal/POS is set up to receive the type of payment you’re attempting.
This means one of two things: 1. You’re attempting to transact an AmEx card or a Discover transaction and your system doesn’t support them, or 2. A customer tried to pay online with a card that doesn’t support online payments.
For the first reason, call your merchant provider and make sure your terminal/POS supports American Express or Discover transactions. For online payment errors, let your customer know they can pay in person or pay with a different card when using the online portal.
63 – Security violation
The three-digit CVV2 or four-digit CID code on the back of the credit card wasn’t read correctly.
Attempt the transaction again without entering a CVV2/CID number. It should process normally. Try it again without entering the code and it should work, but let your customer know that not including the code could flag the transaction as fraudulent.
65 – Activity limit exceeded
Your customer is over their credit limit or this transaction would put them over it.
Have them use a different transaction method or have them call and request a credit limit adjustment.
85 or 00 – Issuer system unavailable
A temporary communication error occurred.
Try it again. If it doesn’t go through, contact your payment processor.
85 – No reason to decline
There’s no apparent problem, but something still went wrong. This error is sort of a catch-all.
Try it again. If the transaction still won’t go through, contact your payment processor.
91 – Issuer or switch is unavailable
The authorization communication failed for no specific reason.
Try it again. If the transaction still won’t go through, contact your payment processor or the relevant issuing bank.
93 – Violation, cannot complete
There’s a violation on the customer account, and the issuing bank has prevented the transaction.
Ask your customer to call their bank, and if the bank confirms everything is okay on their end, attempt the transaction again. Otherwise, just ask for a different card or payment method.
96 – System error
A temporary error occurred during the transaction.
Wait a minute or two and try again. Contact your payment processor if it still didn’t work.
RO or R1 – Customer requested stop of specific recurring payment
Your customer asked their bank to deny charges from your account.
Stop the recurring payments immediately. Then follow up with the customer to see if the request to stop payment was a mistake.
Invalid Transaction: Declined Code 12 Explained
Few things are more frustrating than having a customer who’s waiting to pay but can’t because of some error code, especially when there is a long line of customers behind them.
Or, if you’re running an eCommerce business, error codes could be dramatically lowering your checkout conversion rates — and you may not even know! Staying on top of error codes and diagnosing them quickly is key to running a successful business.
There are a variety of reasons why your POS may fire a decline code, from fraud to incorrect information, and it’s not realistic to memorize all of the codes and what they mean (although printing out a list of credit cards decline codes and hanging it nearby could be useful).
Today, we’re going to cover the invalid transaction, or declined code 12. Here’s everything you need to know about what it is and what to do about it.
What is declined 12 on a credit card?
Also known as the «invalid transaction» code, a credit card error code 12 is given when the issuing bank does not accept a transaction.
That’s super vague, but it’s true.
The issuing bank is the bank that gave the customer their card, and a declined 12 code is sort of a catch-all for error codes. It doesn’t mean one specific thing, but there are a few common reasons why your POS could be sending it.
Why did the POS give me an invalid transaction message?
Here are a few reasons why you could be getting a credit card code 12:
It could be one or a combination of these that is causing your system to fire an invalid transaction. Double-check that it’s not a user error and go from there.
What to do when you get a decline code 12
Decline code situations are always annoying, but follow these steps to resolve them as quickly as possible.
Step 1: Apologize to the customer.
Even if you’re pretty sure it’s their fault, being cordial goes a long way to making this process less frustrating for both parties.
Step 2: Try running the card again.
Take two! Most people try this first anyway, but just in case you haven’t!
Step 3: Double-check the information.
Take a slow read through the code, expiration date, name, and security code. Ask your customer to repeat it if necessary.
Step 4: Double-check the zip code.
It’s possible the customer moved recently and has accidentally put in the wrong zip code. Ask them politely if there’s another zip code possibility.
Step 5: Request a different card.
If you can’t get the card to work, see if your customer minds switching cards for you.
Step 6: Request an alternative form of payment.
See if they can pay by cash or check. If that isn’t an option, don’t just say sorry! Ask to take their name or give them a more direct phone line.
Chances are they’ll have to call their bank to figure things out, so you want to get them right back to the front of the checkout line when they’ve figured it out.
The last thing you want to do is lose a big sale to a competitor over a system error.
Get the rundown on credit card decline codes
Go here for a complete list of credit card decline codes. This is a great page to bookmark!
And if you are running an eCommerce business and want to customize the responses you give customers according to the error code they receive, Visa has some great automated response suggestions, which you can access here.
Save up to 35% on transaction fees with Tidal
Error codes and messages
Depending on your integration type, there are a number of error codes you can receive. All integrations can receive Generic error codes.
There are also error codes specific for an integration type or payment method:
Generic error codes
This error can have multiple potential causes. Here are some examples:
Cause:
Cause:
Cause: Missing parameter
Solution:
Cause:
Cause: The card number field contains an incorrect value.
Cause:
Cause: Missing user permission.
Solution: Add the Merchant Recurring role to the associated web service user.
Cause: The IBAN might be incorrect.
Cause: Missing txvariant details.
Solution: Check the requestData and pass the details correctly.
Cause: The IBAN might be incorrect.
Cause:
Solution:
Cause:
Cause: Incorrect date of birth format is being passed.
Solution: Check what is being passed in the dateOfBirth parameter.
Cause: The billingAddress object does not contain all the required fields.
Solution: Check the required parameters in the API Explorer.
Cause: The deliveryAddress is ‘null’ or there is an error in the delivery address format.
Cause: The shopperName is ‘null’.
Cause:
Cause: shopperReference is ‘null’.
Cause: The phoneNumber or telephoneNumber is ‘null’.
Cause: The recurring object is not passed correctly.
Solution: Check the requestData and make sure that the recurring object is correct.
Cause:
Solution: Check variable/input passed into field.
Cause:
Solution: Check if the reference parameter is passed correctly.
Cause:
Solution: Check variable/input.
Cause:
Cause:
Solution: Pass all required parameters or make sure that you pass data in each parameter.
Cause: StateOrProvince field is missing in delivery address and is required for the selected country.
Cause:
Solution:
Cause: Not passing numeric or valid values.
Solution: Check what variable or input is being passed into the CVC field.
Cause:
Solution:
Cause:
Cause: Merchant server-side date/time is not set up correctly. For example, the merchant server side is set up to 1975 when it is 2020, or the date isn’t in a plus or minus 24 hour range as of today.
Solution: Check the server-side date/time configuration.
Cause:
Solution: If you are seeing this using a plugin, generate a new web service user with the relevant permissions.
Cause: Check if the parameters sent are formatted correctly in JSON.
Solution: Read through the requestData to find the error.
Cause: shopperReference is empty, doesn’t exist or is not found.
Cause: shopperEmail is empty, doesn’t exist or is not found.
Cause: The selected brand is not equal to the brand on the stored token, or empty.
Cause: Not found in Recharge. Qiwi can also throw this error if recurring contract isn’t found.
Cause: Value is empty or ‘null’, or the name doesn’t match with the recurringDetail name.
Cause:
Solution:
Cause:
Cause: The previous recurringDetail token was not saved correctly or does not exist.
Cause: The shopperIP is empty.
Cause:
Cause:
Cause: The reference contains more than 80 characters.
Cause:
Cause:
Коды ошибок Visa/MasterCard/МИР
В данной статье собраны коды ошибок действующих банков-эквайеров.
Часто встречающиеся ошибки:
Код 05 – отказ эмитента без указания причины
Код 17 – отказать, отклонено пользователем карты
Код 41 – утерянная карта
Код 43 – украденная карта
Код 51 – недостаточно средств для проведения операции
Код 57 – недопустимый тип операции для данного типа карты (например, попытка оплаты в магазине по карте предназначенной только для снятия наличных)
Код 61 – превышение максимальной суммы операции или количества попыток для данной карты; превышен лимит на терминале продавца; недостаточно средств на счете продавца, в случае выплат (более точное описание смотрите ниже, исходя из обслуживающего банка)
Код 62 – заблокированная карта
Код 65 – превышение максимального количества операции для данной карты
Код 83 – ошибка сети (технические проблемы)
Код 91 – эмитент недоступен (технические проблемы на стороне банка-эмитента)
Код 96 – системная ошибка/невозможно связаться с банком, который выдал карту (требуется сверка с эквайером)
Полный список кодов ПАО « Промсвязьбанк » :
| Result Code | Description | Описание |
| 0 | Approved | Операция прошла успешно |
| 1 | Call your bank | Позвоните в свой банк |
| 3 | Invalid merchant | Недействительный продавец |
| 4 | Your card is restricted | Ограничение в проведении операции на стороне эмитента |
| 5 | Transaction declined | Операция отклонена без указания причины |
| 12 | Invalid transaction | Недействительная операция, возможно ошибки в параметрах запроса к платёжной системе |
| 13 | Invalid amount | Недопустимая сумма |
| 14 | No such card | Такая карта не существует |
| 15 | No such card/issuer | Нет такой карты / эмитента |
| 20 | Invalid response | Неверный ответ |
| 30 | Format error | Ошибка в параметрах запроса к платёжной системе |
| 41 | Lost card | Карта утеряна (статус установлен у эмитента) |
| 43 | Stolen card | Карта украдена |
| 51 | Not sufficient funds | |
| 54 | Expired card | Срок действия карты истёк |
| 55 | Incorrect PIN | Неверный PIN-код |
| 57 | Not permitted to client | Операция не разрешена для клиента (как правило, о тказ приходит со стороны платёжной системы) |
| 58 | Not permitted to merchant | Не разрешено продавцу (заблокирован терминал) |
| 61 | Exceeds amount limit | Сумма операции превысила допустимый лимит (также, возможен отказ от платёжной системы) |
| 62 | Restricted card | Запрещённая карта |
| 63 | Security violation | Нарушение безопасности |
| 65 | Exceeds frequency limit | Превышен лимит |
| 75 | PIN tries exceeded | Превышено количество попыток ввода PIN-кода |
| 76 | Wrong PIN,tries exceeded | Неверный PIN-код, количество попыток превышено |
| 82 | Time-out at issuer | Тайм-аут при соединении с эмитентом |
| 83 | Transaction failed | Транзакция неуспешна |
| 86 | Unable to verify PIN | Невозможно проверить PIN-код |
| 89 | Authentication failure | Ошибка аутентификации |
| 91 | Issuer unavailable | Эмитент недоступен |
| 93 | Violation of law | Операция отклонена. Держателю необходимо обратиться в свой банк |
| 95 | Reconcile error | Возникает, когда операция была уже проведена. |
| 96 | System malfunction | Системная ошибка \ Возможно ошибки в параметрах запроса к платёжной системе |
| -2 | Bad CGI request | Неверно сформирован запрос к платёжному шлюзу |
| -3 | No or Invalid response received | Платёжный шлюз вовремя не получил ответ. Статус операции при этом может быть успешным или неуспешным. |
| -4 | Server is not responding | Сервер не отвечает |
| -5 | Connect failed | Сбой соединения |
| -8 | Error in card number field | Ошибка в поле номера карты |
| -9 | Error in card expiration date field | Введена неверная дата срока действия карты |
| -10 | Error in amount field | Ошибка в поле суммы |
| -11 | Error in currency field | Ошибка в поле валюты |
| -12 | Error in merchant terminal field | Некорректный запрос к платежному шлюзу |
| -17 | Access denied | Отказано в доступе (Возможно ошибка при формировании P_SIGN) |
| -18 | Error in CVC2 or CVC2 Description fields | Ошибка в поле CVC2 |
| -19 | Authentication failed | Аутентификация прошла неуспешно (3d-secure), возможны другие причины. |
| -20 | Expired transaction | Время проведения операции превышает значение параметра TIMESTAMP |
| -21 | Duplicate transaction | Отправлен повторный запрос с идентичными параметрами |
| 70001 | Not sufficient funds | Недостаточно средств на счете. |
Полный список кодов ПАО Банк «ФК Открытие»:
| Result Code | Description | Описание |
| 00 | Approved | Успешная транзакция |
| 01 | Refer to card issuer | Обратитесь к эмитенту карты |
| 02 | Refer to card issuer, special condition | Обратитесь к эмитенту карты, особое условие |
| 03 | Invalid merchant or service provider | Недействительный идентификатор продавца |
| 04 | Pickup card | Изъять карту |
| 05 | Do not honor | Транзакция была отклонена эмитентом без объяснения причин |
| 06 | Error | Эмитент карты вернул ошибку без дополнительных объяснений |
| 07 | Pickup card, special condition (other than lost/stolen card) | Изъять карту, специальные условия |
| 08 | Honor with identification | Не пройдена идентификация, проблема с идентификацией |
| 09 | Request in progress | Выполняется запрос |
| 10 | Approved for partial amount | Одобрено для частичной суммы |
| 11 | Approved, VIP Approved, VIP program | Одобрено для VIP, программа VIP |
| 12 | Invalid transaction | Запрошенная транзакция не поддерживается или недействительна для представленного номера карты |
| 13 | Invalid amount | Сумма превышает лимиты, установленные эмитентом для данного типа транзакции |
| 14 | Invalid card (no such number) | Эмитент указывает, что эта карта недействительна. |
| 15 | No such issuer | Номер эмитента карты недействителен |
| 16 | Approved, update track 3 | Утверждено, обновить |
| 17 | Customer cancellation | Отмена клиентом |
| 18 | Customer dispute | Открыт спор с клиентом |
| 19 | Re-enter transaction | Клиент должен повторно отправить транзакцию |
| 20 | Invalid response | Неверный ответ |
| 21 | No action taken | Никаких действий не предпринимается. Эмитент отказался без других объяснений |
| 22 | Suspected malfunction | Предполагаемая неисправность |
| 23 | Unacceptable transaction fee | Неприемлемая комиссия за транзакцию |
| 24 | File update not supported | Обновление файла не поддерживается |
| 25 | Unable to locate record | Невозможно найти запись |
| 26 | Duplicate record | Дублирующая запись |
| 27 | File update edit error | Ошибка редактирования обновления файла |
| 28 | File update file locked | Файл/обновления файла заблокировано |
| 29 | not used | не используется |
| 30 | Format error | Ошибка формата |
| 31 | Bank not supported | Банк не поддерживается коммутатором |
| 32 | Completed partially | Завершено частично |
| 33 | Expired card, pick-up | Срок действия карты истек |
| 34 | Issuer suspects fraud, pick-up card | Эмитент карты подозревает мошенничество |
| 35 | Contact acquirer, pick-up | Обратиться к эмитенту карты |
| 36 | Restricted card, pick-up | Ограничено эмитентом карты |
| 37 | Call ECHO security, pick-up | Обратитесь в службу безопасности |
| 38 | PIN tries exceeded, pick-up | Количество попыток получения PIN-кода превышает лимиты эмитента |
| 39 | No credit account | Нет кредитного счета |
| 40 | Function not supported | Запрошенная функция не поддерживается |
| 41 | Pickup card (lost card) | Карта была утеряна |
| 42 | No universal account | Нет универсальной учетной записи |
| 43 | Pickup card (stolen card) | Карта была украдена |
| 44 | No investment account | Нет инвестиционного счета |
| 45 | 50 not used | не используется |
| 51 | Not sufficient funds | Недостаточно средств на карте (только для оплат) |
| 52 | No checking account | Нет текущего счета |
| 53 | No savings account | Нет сберегательного счета |
| 54 | Expired card | Срок действия карты истек |
| 55 | Incorrect PIN | Неправильный PIN-код держателя карты |
| 56 | No card record | Нет такой карты |
| 57 | Transaction not permitted to cardholder | Операция не разрешена держателю карты. Карта не разрешена для запрошенного типа транзакции. |
| 58 | Transaction not permitted on terminal | Транзакция не разрешена на терминале. Продавцу запрещен этот тип транзакции (заблокирован терминал; сработало ограничение и т.д. необходимо уточнять подробности у эквайера) |
| 59 | Suspected fraud | Предполагаемое мошенничество |
| 60 | Contact ECHO | Связаться с службой безопасности |
| 61 | Exceeds withdrawal limit | |
| 62 | Restricted card | Карта заблокирована |
| 63 | Security violation | Нарушение безопасности. Карта заблокирована |
| 64 | Original amount incorrect | Неверная исходная сумма |
| 65 | Activity count limit exceeded | Превышено допустимое количество ежедневных транзакций |
| 66 | Call acquirer security | Связаться со службой безопасности эквайера |
| 67 | not used | не используется |
| 68 | Response received too late | Ответ получен слишком поздно |
| 69 | 74 not used | не используется |
| 75 | PIN tries exceeded | Превышено допустимое количество попыток ввода PIN-кода |
| 76 | Invalid «to» account | Неверный счет. Дебетового счета не существует |
| 77 | Invalid «from» account | Недействительный счет. Кредитный счет не существует |
| 78 | Invalid account specified (general) | Связанная учетная запись с номером карты недействительна или не существует |
| 79 | Already reversed | Уже отменено |
| 80 | Visa transactions: credit issuer unavailable | Операции с Visa: эмитент недоступен |
| 81 | PIN cryptographic error found | Обнаружена криптографическая ошибка PIN-кода |
| 82 | Negative CAM, dCVV, iCVV, or CVV results | Некорректный CAM, dCVV, iCVV или CVV |
| 83 | Unable to verify PIN | Невозможно проверить PIN-код |
| 84 | Invalid authorization life cycle | Просроченная авторизация |
| 85 | not used | не используется |
| 86 | Cannot verify PIN | Невозможно проверить PIN-код |
| 87 | Network Unavailable | Сеть недоступна |
| 88 | Invalid CVC2 | Ошибочно введенный cvc2 |
| 89 | Ineligible to receive financial position information | Невозможно получить финансовую информацию |
| 90 | Cut-off in progress | Отключение в процессе |
| 91 | Issuer or switch inoperative | Банк-эмитент недоступен |
| 92 | Routing error | Ошибка маршрутизации |
| 93 | Violation of law | Нарушение закона |
| 94 | Duplicate transaction | Дублирующая транзакция |
| 95 | Reconcile error | Ошибка согласования/ошибка при расчетах с МПС/НСПК |
| 96 | System malfunction | Произошла системная ошибка |
| 97 | not used | не используется |
| 98 | Exceeds cash limit | Превышен денежный лимит |
| -2 | Bad CGI request | Запрос не прошел CGI-проверку |
| -3 | No or Invalid response received | Хост эквайрера (NS) не отвечает |
| -4 | Server is not responding | Нет соединения с хостом эквайрера |
| -5 | Connect failed | Ошибка соединения с хостом эквайрера (NS) во время обработки транзакции |
| -6 | Configuration error | Ошибка настройки модуля e-Gateway |
| -7 | Incorrect response from the acquirer host | Некорректный ответа хоста эквайрера (NS), например, отсутствуют обязательные поля |
| -8 | Error in card number field | Ошибка в поле «Card number» запроса |
| -9 | Error in card expiration date field | Ошибка в поле «Card expiration date» запроса |
| -10 | Error in amount field | Ошибка в поле «Amount» запроса |
| -11 | Error in currency field | Ошибка в поле «Currency» запроса |
| -12 | Error in merchant terminal field | Ошибка в поле «Merchant ID» запроса |
| -13 | System error | IP-адрес источника транзакции (обычно IP торговца) не соответствует ожидаемому |
| -14 | No connection | Нет соединения с PIN-клавиатурой Интернет-терминала либо программа-агент на компьютере/рабочей станции Интернет-терминала не запущена |
| -15 | Error in the «RRN» field of the request | Ошибка в поле «RRN» запроса |
| -16 | Another transaction is in progress on the terminal | На терминале выполняется другая транзакция |
| -17 | The terminal is denied access to the e-Gateway module | Терминалу отказано в доступе к модулю e-Gateway |
| -18 | Error in the «CVC2» or «CVC2 Description» field of the request | Ошибка в поле «CVC2» или «CVC2 Description» запроса |
| -19 | Error in request for authentication information or authentication failed | Ошибка в запросе на аутентификационную информацию либо аутентификация неуспешна |
| -20 | Permissible time interval exceeded | Превышен допустимый временной интервал (по умолчанию – 1 час) между значением поля «Time Stamp» запроса и временем модуля e-Gateway |
| -21 | Transaction has already been completed | Транзакция уже выполнена |
| -22 | Transaction contains invalid authentication information | Транзакция содержит ошибочную аутентификационную информацию |
| -23 | Error in transaction context | Ошибка в контексте транзакции |
| -24 | Inconsistency in the context of a transaction | Несоответствие в контексте транзакции |
| -25 | Transaction aborted by user | Транзакция прервана пользователем |
| -26 | Invalid BIN of the card | Неверный BIN карты |
| -27 | Seller name error | Ошибка в имени продавца |
| -28 | Error in additional data | Ошибка в дополнительных данных |
| -29 | Error in authentication link (damaged or duplicated) | Ошибка в ссылке аутентификации (повреждена или дублируется) |
| -30 | Transaction was rejected as fraudulent | Транзакция отклонена как мошенническая |
| -31 | Transaction in progress | Транзакция в процессе выполнения |
| -32 | Re-declined transaction | Повторная отклоненная транзакция |
| -33 | client authentication in progress | Транзакция в процессе аутентификации клиента с помощью авторизации случайной суммы или одноразового случайного кода |
| -34 | MasterCard Installment транзакция в процессе выбора пользователем способа оплаты | |
| -35 | MasterCard Installment транзакция в процессе выбора пользователем способа оплаты была отклонена автоматически после превышения лимита времени на эту операцию | |
| -36 | MasterCard Installment транзакция в процессе выбора пользователем способа оплаты была отклонена самим пользователем |
Полный список кодов АО «Банк Русский Стандарт»:
Коды отказов платежных систем Visa, MasterCard, МИР (общее описание)
Developer Hub
Extended Payment API
Orders
Shopping Context
Shoppers
Catalog
Subscriptions
Wallets
Errors
Resources
Test Data & Codes
Guides & Tools
Payment & Processor Errors
The following errors can be returned in response to requests related to payment processing, including Order, Shopping Context, and Subscription requests.
Exceeded maximum fraction digits for currency [USD]. Maximum is [2].
Payment processing failure because the authorization has already been reversed.
Payment processing failure due to invalid amount for this transaction.
Payment processing failure because the authorization has expired.
Authorization must be performed before capture.
Payment processing failure because the authorization was not found.
Your payment request could not be successfully completed.
Your payment request could not be successfully completed.
Your payment request could not be successfully completed.
Your payment request could not be successfully completed.
Payment processing failure due to an unspecified error. Please contact the issuing bank.
The card is lost or stolen.
Your payment request could not be successfully completed.
Retry the transaction using a different card or decline the transaction.
Shopping cart or shopping cart parameters are required.
The cart contains CDoD but no item in the cart supports CDoD.
Changing SKU for subscription is not supported.
Credit card details decryption failed due to invalid input.
Credit card details decryption failed due to invalid public key.
Credit card details decryption failed.
Coupon code is required.
Coupon was not found.
Only one coupon can be used for each order.
Shopper credit card cannot contain both plain and encrypted details.
Correct the shopper details and resubmit.
Credit card encrypted number is required.
Add the encrypted card number and resubmit.
Credit card encrypted security code is required. Add the encrypted security code and resubmit.
The Currency Code passed in the request was not found.
Custom parameter was not found.
Payment processing failure due to CVV error.
Correct the CVV code and retry the transaction.
Payment processing failure due to issuing bank decline. Try another payment method or wait 24 hours before trying again.
The cart contains EDW but no item in the cart supports EDW.
The shopping cart is empty.
The parameters specified to the service lead to an empty result.
Expected total price does not match the calculated total price.
or
Transaction could not be completed due to unsupported currency
Your payment request could not be successfully completed.
Correct the expiration date and retry. If the transaction still fails, retry with a different payment method or decline the transaction.
Internal processing error, please contact support.
A general payment failure has occurred.
Your payment request could not be successfully completed.
Payment processing failure due to high risk.
Subscription Charge creation failure since the subscription
Payment processing failure due to incorrect information.
Description will contain additional information about the specific error.
Payment processing failure due to incorrect setup.
Your payment request could not be successfully completed.
Retry the transaction at a later date, use a new payment method or decline the transaction.
There are not enough funds in your account to issue this refund, please contact [email protected]
Invalid affiliate ID.
Payment processing failure due to invalid amount for this transaction.
The bank country passed in the request is invalid.
The cancellation reason passed in the request is invalid.
Payment processing failure due to invalid card number.
Correct the card number and retry the transaction. If the transaction still fails, try a new payment method or decline the transaction.
Payment processing failure due to invalid card type.
Correct the card number and retry the transaction. If the transaction still fails, try a new payment method or decline the transaction.
Updating subscription failed due to invalid currency code.
The custom parameter passed in the request is invalid.
One or more parameters specified to the service are invalid.
The IP address passed in the request is invalid.
The number of shopper payment methods is invalid.
Page name is invalid or missing.
Payment processing failure due to invalid PIN or password or ID error.
The Shopper ID passed in the request is invalid.
Invalid SKU parameter.
Invalid step field.
Payment processing failure because this transaction is not allowed by the issuer.
Transaction type is invalid.
Note: HTTP status is 403 Forbidden.
The VAT ID passed in the request is invalid.
Invoice has already been refunded.
Invoice has already been fully refunded.
The invoice ID passed in the request was not found.
License key regeneration errors.
Payment processing failure because card limit has exceeded.
Retry the transaction later, use a new payment method, or decline the transaction.
Missing parameter key or value.
Shopper has multiple payment methods, but none is selected.
Correct the payment method and resubmit.
The total amount is negative.
Next charge amount is required.
Next charge currency is required
The next charge amount passed in the request is negative.
There are no available processors for the specific request.
Shopper not found for subscription ID
Partial refund failed because the given amount must be greater than zero.
The quantity passed in the request is 0 or negative.
Order invoice or subscription ID is required.
The order ID passed in the request was not found.
The partial refund amount is required.
Simultaneous usage of invoice refund amount and SKU refund amount parameters is not allowed.
SKU does not relate to specified invoice.
SKU amount is invalid.
Partial refund failed because only financial transactions which contain exactly one sku can be partially refunded.
Invoice cannot be partially refunded.
SKU amount is required for partial refunds.
SKU amount exceeds maximum amount allowed for that SKU.
Payment info is required.
Contact Merchant Support to issue this refund.
Payment processing failure because the attempted operation is not supported for this payment method.
Custom plan subscriptions are not supported in PayPal. Please choose an alternative payment method.
Updating PayPal subscription failed due to data mismatch.
Multiple subscriptions are not supported in PayPal. Please choose an alternative payment method.
Persisted shopping context is not found.
Payment processing failure. The card has been reported lost or stolen and should be removed from use.
Plan change with more than one SKU.
Payment processing failure due to invalid amount for this transaction.
Validate the amount submitted is correct and resubmit. If the transaction still fails decline the transaction.
Payment processing failure due to duplication. The transaction is a duplicate of a previously submitted transaction.
Payment processing failure due to an unspecified error returned. Retry the transaction and if problem continues contact the issuing bank, or decline the transaction.
Payment processing failure due to timeout.
Retry the transaction.
A general payment failure has occurred for this refund.
A failure has occurred. Please contact BlueSnap support for further assistance.
Retry the transaction.
Transaction is not valid for refund as transaction has not been cleared yet. Please wait 3-7 days and try again.
Another refund request for this invoice is currently in process. Please wait for it to finish before submitting new request.
Refund amount cannot be more than the refundable order amount.
Correct amount and resubmit.
Refund amount must be greater than 0.
Correct the amount and resubmit.
The refund couldn’t be issued since the original order has a zero total amount
The time limit to perform a refund on this transaction has expired.
The refund couldn’t be issued since the original order doesn’t contain any refundable items.
Payment processing failure due to restricted card.
Payment Error Codes
| CODE | TEXT | DESCIPTION | INTEGRATION SUGGESTIONS | OTHER SUGGESTIONS |
|---|---|---|---|---|
| I00001 | Successful. | The request was processed successfully. | ||
| I00002 | The subscription has already been canceled. | The subscription has already been canceled. | ||
| I00003 | The record has already been deleted. | The record has already been deleted. | ||
| I00004 | No records found. | No records have been found that match your query. | ||
| I00005 | The mobile device has been submitted for approval by the account administrator. | The mobile device was successfully inserted into the database. | ||
| I00006 | The mobile device is approved and ready for use. | The mobile device was successfully registered and approved by the account administrator. | ||
| I00007 | The Payment Gateway Account service (id=8) has already been accepted. | The Payment Gateway Account service (id=8) has already been accepted. | ||
| I00008 | The Payment Gateway Account service (id=8) has already been declined. | The Payment Gateway Account service (id=8) has already been declined. | ||
| I00009 | The APIUser already exists. | The APIUser already exists. | ||
| I00010 | The merchant is activated successfully. | The merchant is activated successfully. | ||
| I00011 | The merchant is not activated. | The merchant is not activated. | ||
| I99999 | This feature has not yet been completed. One day it will be but it looks like today is not that day. | This is a work in progress. This message will not be released to production. It’s just a dev placeholder. | ||
| E00001 | An error occurred during processing. Please try again. | An unexpected system error occurred while processing this request. | ||
| E00002 | The content-type specified is not supported. | The only supported content-types are text/xml and application/xml. | ||
| E00003 | An error occurred while parsing the XML request. | This is the result of an XML parser error. | ||
| E00004 | The name of the requested API method is invalid. | The name of the root node of the XML request is the API method being called. It is not valid. | ||
| E00005 | The transaction key or API key is invalid or not present. | User authentication requires a valid value for transaction key or API key. | ||
| E00006 | The API user name is invalid or not present. | User authentication requires a valid value for API user name. | ||
| E00007 | User authentication failed due to invalid authentication values. | The API user name is invalid and/or the transaction key or API key is invalid. | This error indicates that invalid credentials, the API Login ID or Transaction Key, are being submitted. If you have confirmed that your API login ID and Transaction Key are accurate, you may need to confirm that you are submitting to the correct URL. If you are using a test account, please make sure to post to the sandbox URL. If you’re using a live account, make sure to post to the production URL. | |
| E00008 | User authentication failed. The account or API user is inactive. | The payment gateway, reseller, or user account is not currently active. | ||
| E00009 | The payment gateway account is in Test Mode. The request cannot be processed. | The requested API method cannot be executed while the payment gateway account is in Test Mode. | To disable Test Mode, log into the Merchant Interface at https://account.authorize.net/ and click Account > Test Mode > Turn Test OFF. | |
| E00010 | User authentication failed. You do not have the appropriate permissions. | The user does not have permission to call the API. | ||
| E00011 | Access denied. You do not have the appropriate permissions. | The user does not have permission to call the API method. | To enable the Transaction Details API: Step 1. Log in to your account at the Merchant Interface. Step 2. Enter your login ID and password. Step 3. Click Account. Step 4. Under Security Settings, click Transaction Details API. Step 5. Enter your secret answer. Step 6. Click Enable Transaction Details API. | |
| E00012 | A duplicate subscription already exists. | A duplicate of the subscription was already submitted. | The recurring billing system checks a new subscription for duplicates, using these fields: subscription.article.merchantID subscription.article.customerInfo.payment.creditCard.cardNumber subscription.article.customerInfo.payment.eCheck.routingNumber subscription.article.customerInfo.payment.eCheck.accountNumber subscription.article.customerInfo.customerID subscription.article.customerInfo.billingInfo.billToAddress.firstName subscription.article.customerInfo.billingInfo.billToAddress.lastName subscription.article.customerInfo.billingInfo.billToAddress.company subscription.article.customerInfo.billingInfo.billToAddress.streetAddress subscription.article.customerInfo.billingInfo.billToAddress.city subscription.article.customerInfo.billingInfo.billToAddress.stateProv subscription.article.customerInfo.billingInfo.billToAddress.zip subscription.orderInfo.amount subscription.orderInfo.invoice subscription.recurrence.startDate subscription.recurrence.interval subscription.recurrence.unit If all of these fields are duplicated in an existing subscription, error code E00012 will result. Modifying any of these fields should result in a unique subscription. | |
| E00013 | The field is invalid. | One of the field values is not valid. | One of the field values is not valid. The response text field should provide you the details of which “field” exactly is invalid so check the response text. | |
| E00014 | A required field is not present. | One of the required fields was not present. | ||
| E00015 | The field length is invalid. | One of the fields has an invalid length. | ||
| E00016 | The field type is invalid. | The field type is not valid. | ||
| E00017 | The start date cannot occur in the past. | The subscription start date cannot occur before the subscription submission date. | ||
| E00018 | The credit card expires before the subscription start date. | The credit card is not valid as of the start date of the subscription. | ||
| E00019 | The customer tax id or drivers license information is required. | The customer tax ID or driver’s license information (driver’s license number, driver’s license state, driver’s license DOB) is required for the subscription. | ||
| E00020 | The payment gateway account is not enabled for eCheck.Net subscriptions. | The payment gateway account is not set up to process eCheck.Net subscriptions. | ||
| E00021 | The payment gateway account is not enabled for credit card subscriptions. | The payment gateway account is not set up to process credit card subscriptions. | ||
| E00022 | The interval length cannot exceed 365 days or 12 months. | The interval length must be 7 to 365 days or 1 to 12 months. | ||
| E00023 | The subscription duration cannot exceed three years. | The number of total occurrences cannot extend the duration of the subscription beyond three years from the start date. | ||
| E00024 | Trial Occurrences is required when Trial Amount is specified. | The number of trial occurrences cannot be zero if a valid trial amount is submitted. | ||
| E00025 | Automated Recurring Billing is not enabled. | The payment gateway account is not enabled for Automated Recurring Billing. | ||
| E00026 | Both Trial Amount and Trial Occurrences are required. | If either a trial amount or number of trial occurrences is specified then values for both must be submitted. | ||
| E00027 | The transaction was unsuccessful. | An approval was not returned for the transaction. | This error may occur for merchants on the HSBC or FDI Australia processors when setting validationMode to liveMode as these processors do not support authorization reversals. We recommend HSBC and FDI Australia merchants set validationMode to testMode instead. | For more information, check the errorCode field in the response. |
| E00028 | Trial Occurrences must be less than Total Occurrences. | The number of trial occurrences specified must be less than the number of total occurrences specified. | ||
| E00029 | Payment information is required. | Payment information is required when creating a subscription or payment profile. | ||
| E00030 | The payment schedule is required. | A payment schedule is required when creating a subscription. | ||
| E00031 | The amount is required. | The subscription amount is required when creating a subscription. | ||
| E00032 | The start date is required. | The subscription start date is required to create a subscription. | ||
| E00033 | The start date cannot be changed. | Once a subscription is created the start date cannot be changed. | ||
| E00034 | The interval information cannot be changed. | Once a subscription is created the interval cannot be changed. | ||
| E00035 | The subscription cannot be found. | The subscription ID for this request is not valid for this merchant. | ||
| E00036 | The payment type cannot be changed. | Changing the subscription payment type between credit card and eCheck.Net is not currently supported. | ||
| E00037 | The subscription cannot be updated. | Subscriptions that are expired, canceled or terminated cannot be updated. | ||
| E00038 | The subscription cannot be canceled. | Subscriptions that are expired or terminated cannot be canceled. | ||
| E00039 | A duplicate record already exists. | A duplicate of the customer profile, customer payment profile, or customer address was already submitted. | For information about the rules that Authorize.Net uses to check for duplicate profiles, see the Customer Profiles API Documentation. | |
| E00040 | The record cannot be found. | The customer profile ID, payment profile ID, shipping address ID, or transaction ID for this request is not valid for this merchant. | ||
| E00041 | One or more fields must contain a value. | All of the fields were empty or missing. | ||
| E00042 | You cannot add more than <> payment profiles. | The maximum number of payment profiles for the customer profile has been reached. | ||
| E00043 | You cannot add more than <> shipping addresses. | The maximum number of shipping addresses for the customer profile has been reached. | ||
| E00044 | Customer Information Manager is not enabled. | The payment gateway account is not enabled for Customer Information Manager (CIM). | ||
| E00045 | The root node does not reference a valid XML namespace. | The root node does not reference a valid XML namespace. | ||
| E00046 | Generic InsertNewMerchant failure. | Generic InsertNewMerchant failure. | ||
| E00047 | Merchant Boarding API is not enabled. | The reseller account is not enabled for Merchant Boarding API. | ||
| E00048 | At least one payment method must be set in payment types or an echeck service must be provided. | The merchant account must be set up to accept credit card payments, eCheck payments, or both. | ||
| E00049 | The operation timed out before it could be completed. | The database operation timed out before it could be completed. | ||
| E00050 | Sell Rates cannot be less than Buy Rates | Cannot set a buyrate to less than the sellrate | ||
| E00051 | The original transaction was not issued for this payment profile. | If customer profile ID, payment profile ID, and shipping address ID are included, they must match the original transaction. | ||
| E00052 | The maximum number of elements for an array <0>is <1>. | The maximum number of elements for an array has been reached. | ||
| E00053 | Server too busy | The server is currently too busy, please try again later. | ||
| E00054 | The mobile device is not registered with this merchant account. | The mobile device identifier is not associated with the merchant account. | ||
| E00055 | The mobile device has already been registered but is pending approval by the account administrator. | The mobile device exists but is in a pending status. | ||
| E00056 | The mobile device has been disabled for use with this account. | The mobile device exists but has a status of disabled. | ||
| E00057 | The user does not have permissions to submit requests from a mobile device. | The user does not have sufficient permissions to use a mobile device with this merchant account. | ||
| E00058 | The merchant has met or exceeded the number of pending mobile devices permitted for this account. | The merchant has too many devices in a pending status. | ||
| E00059 | The authentication type is not allowed for this method call. | The authentication type is not allowed for the requested method call. | ||
| E00060 | The transaction type is invalid. | The transaction type is invalid. | ||
| E00061 | (<1>). | Could not decrypt DUKPT blobs and returned error. | ||
| E00062 | Fatal error when calling web service. | Fatal error when calling web service. | ||
| E00063 | Calling web service return error. | Calling web service return error. | ||
| E00064 | Client authorization denied. | Client authorization denied. | ||
| E00065 | Prerequisite failed. | Prerequisite failed. | ||
| E00066 | Invalid value. | Invalid value. | ||
| E00067 | An error occurred while parsing the XML request. Too many <> specified. | This is the result of an XML parser error. Too many nodes specified. | ||
| E00068 | An error occurred while parsing the XML request. <> is invalid. | This is the result of an XML parser error. The node is invalid. | ||
| E00069 | The Payment Gateway Account service (id=8) has already been accepted. Decline is not allowed. | The Payment Gateway Account service (id=8) has already been accepted. Decline is not allowed. | ||
| E00070 | The Payment Gateway Account service (id=8) has already been declined. Agree is not allowed. | The Payment Gateway Account service (id=8) has already been declined. Agree is not allowed. | ||
| E00071 | <> must contain data. | All of the fields were empty or missing. | ||
| E00072 | Node <> is required. | Required node missing. | ||
| E00073 | <> is invalid. | One of the field values is not valid. | ||
| E00074 | This merchant is not associated with this reseller. | This merchant is not associated with this reseller. | ||
| E00075 | An error occurred while parsing the XML request. Missing field(s) <>. | This is the result of an XML parser error. Missing field(s). | ||
| E00076 | <> contains invalid value. | Invalid value. | ||
| E00077 | The value of <> is too long. The length of value should be | Value too long. | ||
| E00078 | Pending Status (not completed). | Pending Status (not completed). | ||
| E00079 | The impersonation login ID is invalid or not present. | Impersonation partner login ID is invalid or not present. | ||
| E00080 | The impersonation API Key is invalid or not present. | Impersonation API Key is invalid or not present. | ||
| E00081 | Partner account is not authorized to impersonate the login account. | The partner account is not authorized to impersonate the login account. | ||
| E00082 | Country for <> is not valid. | Country is not valid. | ||
| E00083 | Bank payment method is not accepted for the selected business country. | Bank payment method is not accepted for the selected business country. | ||
| E00084 | Credit card payment method is not accepted for the selected business country. | Credit card payment method is not accepted for the selected business country. | ||
| E00085 | State for <> is not valid. | State is not valid. | ||
| E00086 | Merchant has declined authorization to resource. | Merchant has declined authorization to resource. | ||
| E00087 | No subscriptions found for the given request. | There are no subscriptions available for the merchant account for the type of subscriptions requested. | ||
| E00088 | ProfileIds cannot be sent when requesting CreateProfile. | CreateProfile and profileIds are mutually exclusive, only one of them can be provided at a time. | ||
| E00089 | Payment data is required when requesting CreateProfile. | When requesting CreateProfile payment data cannot be null. | ||
| E00090 | PaymentProfile cannot be sent with payment data. | PaymentProfile and PaymentData are mutually exclusive, only one of them can be provided at a time. | ||
| E00091 | PaymentProfileId cannot be sent with payment data. | PaymentProfileId and payment data are mutually exclusive, only one of them can be provided at a time. | ||
| E00092 | ShippingProfileId cannot be sent with ShipTo data. | ShippingProfileId and ShipToAddress are mutually exclusive, only one of them can be provided at a time. | ||
| E00093 | PaymentProfile cannot be sent with billing data. | PaymentProfile and Billing information are mutually exclusive, only one of them can be provided at a time. | ||
| E00094 | Paging Offset exceeds the maximum allowed value. | Paging Offset exceeds allowed value. Check and lower the value. | ||
| E00095 | ShippingProfileId is not provided within Customer Profile. | When using Customer Profile with Credit Card Info to specify Shipping Profile, Shipping Profile Id must be included. | ||
| E00096 | Finger Print value is not valid. | Finger Print value is not valid. | ||
| E00097 | Finger Print can’t be generated. | Finger Print can’t be generated. | ||
| E00098 | Customer Profile ID or Shipping Profile ID not found. | Search for shipping profile using customer profile id and shipping profile id did not find any records. | ||
| E00099 | Customer profile creation failed. This transaction ID is invalid. | Customer profile creation failed. This transaction ID is invalid. | ||
| E00100 | Customer profile creation failed. This transaction type does not support profile creation. | Customer profile creation failed. This transaction type does not support profile creation. | ||
| E00101 | Customer profile creation failed. | Error creating a customer payment profile from transaction. | ||
| E00102 | Customer Info is missing. | Error creating a customer profile from transaction. | ||
| E00103 | Customer profile creation failed. This payment method does not support profile creation. | Customer profile creation failed. This payment method does not support profile creation. | ||
| E00104 | Server in maintenance. Please try again later. | The server is in maintenance, so the requested method is unavailable. Please try again later. | ||
| E00105 | The specified payment profile is associated with an active or suspended subscription and cannot be deleted. | The specified payment profile is associated with an active or suspended subscription and cannot be deleted. | ||
| E00106 | The specified customer profile is associated with an active or suspended subscription and cannot be deleted. | The specified customer profile is associated with an active or suspended subscription and cannot be deleted. | ||
| E00107 | The specified shipping profile is associated with an active or suspended subscription and cannot be deleted. | The specified shipping profile is associated with an active or suspended subscription and cannot be deleted. | ||
| E00108 | CustomerProfileId cannot be sent with customer data. | CustomerProfileId and Customer data are mutually exclusive, only one of them can be provided for any single request. | ||
| E00109 | CustomerAddressId cannot be sent with shipTo data. | Shipping Address ID and Shipping data are mutually exclusive, only one of them can be provided for any single request. | ||
| E00110 | CustomerPaymentProfileId is not provided within Customer Profile. | When using Customer Profile, CustomerPaymentProfileId must be included. | ||
| E00111 | The original subscription was not created with this Customer Profile. | If Customer Profile ID is included, it must match the Customer Profile ID used for the original subscription. | ||
| E00112 | The specified month should not be in the future. | Reports cannot be generated for future dates, thus the specified date is invalid. | ||
| E00113 | Invalid OTS Token Data. | The specified OTS Token Data is invalid. | ||
| E00114 | Invalid OTS Token. | The specified OTS Token is invalid. | ||
| E00115 | Expired OTS Token. | The specified OTS Token has expired. | ||
| E00116 | OTS Token access violation | The authenticated merchant does not have access to the specified OTS Token. | ||
| E00117 | OTS Service Error ‘<>’ | The OTS Service cannot complete the request due to a validation or configuration error. | ||
| E00118 | The transaction has been declined. | The transaction was submitted from a blocked IP address. | ||
| E00119 | Payment information should not be sent to Hosted Payment Page request. | Hosted Payment Page will capture the payment (bank/card) information so this information should not be included with this request. | ||
| E00120 | Payment and Shipping Profile IDs cannot be specified when creating new profiles. | Payment and Shipping Profile IDs cannot be specified when creating new profiles. | ||
| E00121 | No default payment/shipping profile found. | The customer profile does not have a default payment/shipping profile. | ||
| E00122 | Please use Merchant Interface settings (API Credentials and Keys) to generate a signature key. | Signature key missing. | ||
| E00123 | The provided access token has expired | The access token provided has expired. | Applicable only to the Authorize.Net API when using OAuth as an authentication method. Access tokens expire after 10 minutes, and a new access token should be requested by the solution. | See the OAuth documentation for details. |
| E00124 | The provided access token is invalid | The access token used to validate the request is insufficient to do so. | Applicable only to the Authorize.Net API when using OAuth as an authentication method. | See the OAuth documentation for details. |
| E00125 | Hash doesn’t match | Hash doesn’t match. | ||
| E00126 | Failed shared key validation | Failed shared key validation. | ||
| E00127 | Invoice does not exist | Invoice number did not find any records. | ||
| E00128 | Requested action is not allowed | Requested action is not allowed due to current status of the object. | ||
| E00129 | Failed sending email | Failed sending email. | ||
| E00130 | Valid Customer Profile ID or Email is required | Valid Customer Profile ID or Email is required | ||
| E00131 | Invoice created but not processed completely | Invoice created but failed send email and update status | ||
| E00132 | Invoicing or CIM service is not enabled. | The payment gateway account is not enabled for Invoicing or CIM service. | ||
| E00133 | Server error. | Server error | ||
| E00134 | Due date is invalid | Due date is past date or not specified. | ||
| E00135 | Merchant has not provided processor information. | Merchant has not yet provided processor information to set test mode flag to false. | ||
| E00136 | Processor account is still in process, please try again later. | Processor account has not been setup to set test mode flag to false. | ||
| E00137 | Multiple payment types are not allowed. | Only either CreditCard or Bank is allowed. | ||
| E00138 | Payment and Shipping Profile IDs cannot be specified when requesting a hosted payment page. | Payment and Shipping Profile IDs cannot be specified when requesting a hosted payment page. | ||
| E00139 | Access denied. Access Token does not have correct permissions for this API. | The Access token does not have permission to call the API method. | ||
| E00140 | Reference Id not found | Reference Id not found. | ||
| E00141 | Payment Profile creation with this OpaqueData descriptor requires transactionMode to be set to liveMode. | Payment Profile creation with this OpaqueData descriptor requires transactionMode to be set to liveMode. | ||
| E00142 | RecurringBilling setting is a required field for recurring tokenized payment transactions. | RecurringBilling setting is a required field for recurring tokenized payment transactions. | ||
| E00143 | Failed to parse MerchantId to integer | Failed to parse the MerchantId to integer | ||
| E00144 | We are currently holding the last transaction for review. Before you reactivate the subscription, review the transaction. | We are currently holding the last transaction for review. Before you reactivate the subscription, review the transaction. | ||
| E00145 | This invoice has been canceled by the sender. Please contact the sender directly if you have questions. | This invoice has been canceled by the sender. Please contact the sender directly if you have questions. | ||
| 0 | Unknown Error. | |||
| 1 | This transaction has been approved. | |||
| 2 | This transaction has been declined. | |||
| 3 | This transaction has been declined. | A referral to a voice authorization center was received. Please call the appropriate number below for a voice authorization. |
For American Express call: (800) 528-2121
For Diners Club call: (800) 525-9040
For Discover/Novus call: (800) 347-1111
For JCB call : (800) 522-9345
For Visa/Mastercard call: (800) 228-1122
Once an authorization is issued, you can then submit the transaction through your Virtual Terminal as a Capture Only transaction.
The fields that are validated include:
| API Login ID | login |
| Credit Card Number | cardNumber |
| Expiration Date | expirationDate |
| Transaction Type | transactionType |
| Bank Account Number | accountNumber |
| Routing Number | routingNumber |
| Purchase Order Number | poNumber |
| Amount | amount |
| Invoice Number | invoiceNumber |
| Customer ID | id |
| First Name | firstName |
| Last Name | lastName |
| Company | company |
| Address | address |
| City | city |
| State | state |
| Postal Code | zip |
| Country | country |
| Duplicate Window | duplicateWindow |
If any of the fields change from one transaction to the next, Authorize.Net will not view the transactions as duplicates.
The duplicate transaction window will always be two minutes for all transactions submitted through the Virtual Terminal. If you wish to adjust the duplicate transaction window for transactions submitted from your software, such as a website or shopping cart, you may do so by adding the field duplicateWindow to your website script.
If you are unable to adjust or add this variable to your shopping cart settings, please contact your shopping cart support team for additional assistance in this regard. The variable duplicateWindow tells us, in seconds, how much time we should check for duplicates after a transaction is submitted.
The largest value we will accept for duplicateWindow is 28800, which equals eight hours. If a value greater than 28800 sent, the payment gateway will default to 28800. If duplicateWindow is set to 0 or to a negative number, no duplicate transaction window will be enforced for your software’s transactions. If no value is sent, the default value of 120 (two minutes) would be used.
For example, if you wished to set a duplicate transaction window of five minutes (= 300 seconds) you would set duplicateWindow to 300.
Note: By submitting duplicateWindow with your online transactions, we will return further details along with this error response, including:
If you do not submit the duplicateWindow field, we will not return any details from the original transaction, even if you submit a duplicate transaction.
To change the field value to not required:
If the Merchant Profile has your correct address-including the country-then you may need to contact your Merchant Service Provider to confirm that TSYS/Vital/Visanet has the correct address for validation.
Any fingerprint hash can only be used once in 24 hours.
If a customer fills in incorrect information and the transaction is declined, they cannot click Back and re-enter the information as this will attempt to use the same fingerprint hash in resubmitting the transaction request, which will result in error 98.
The customer must be directed back to the page that sets the amount of the transaction request, then re-enter information from that point on.
If you are receiving this error, it indicates that either x_password or x_tran_key is being submitted with your WebLink request. This represents a security risk as the password or transaction key could be viewed in your source code.
We highly recommend that you upgrade your connection method.
Please visit our Developer Center for up-to-date documentation.
Please consider the following details when encountering this error:
Also, verify that the merchant’s processor supports Verified by Visa and Mastercard SecureCode authentication values through Authorize.Net.
Note that the TSYS payment processing platform was formerly known as Vital or Visanet. On TSYS/Vital/Visanet, Error 180 is an valid response indicating that a transaction was submitted and correctly received, but rejected due to using a test card number. If the processor is incorrectly configured, the response will be something more generic like a response of 30, 34, or 35.
The Security Code works by generating an image that contains random numbers and letters that cannot be read by scripts. The customer is then prompted to enter the letters and numbers exactly as they appear in the image. If the customer enters the correct Security Code, the transaction is accepted as valid.
Error 312 indicates that the customer had entered the wrong Security Code. Should this error occur, a new Security Code is generated, and the customer is prompted to try again until they are successful.
To turn off the Security Code option:
Note: When using Simple Checkout, the customer is always required to verify a Security Code. Even if the Security Code is disabled from the payment form, the customer is required to verify a Security Code on the Simple Checkout order page.
The Security Code works by generating an image that contains random numbers and letters that cannot be read by scripts. The customer is then prompted to enter the letters and numbers exactly as they appear in the image. If the customer enters the correct Security Code, the transaction is accepted as valid.
If they enter an incorrect value, the customer is prompted to try again until they are successful.
To turn off the Security Code option:
Note: When using Simple Checkout, the customer is always required to verify a Security Code. Even if the Security Code is disabled from the payment form, the customer is required to verify a Security Code on the Simple Checkout order page.
Invalid Credit Card Number validation false positive, help please!
For some reason the credit card number validation is throwing a false-positive. I’ve tested two different cards and they both return «Invalid credit card number.» error. The fields all end up empty and I have to re-enter. Here’s where the form is: https://wmcfest.com/sponsor-us/
It isn’t leaving the server as far as I can tell because there’s no sign of it in the Stripe logs. There are no php errors logged either. So it seems like a js/ajax validation error. Not sure where next to look for troubleshooting. We have the latest Gravity version, although Stripe plugin may be outdated if there’s not an alert in WP.
Thanks for any insight.
Update, I’ve tested it with and without Steps splitting up the form and still get the «Invalid credit card number» regardless of real or test CCs. I don’t see an ajax/xhr call so it seem to be using a basic post to php but there aren’t errors in the php. I’ve tested it with the preview (non theme) view as well and it still throws the invalid CC error. I’ve also tested it with and without HTML5 enabled and noconflict mode but it always throws the false positive. Is this supposed to be using an ajax form? Maybe the js didn’t update when the plugin did? I don’t think it is Stripe plugin related because it doesn’t seem to leave the form prevalidation but for good measure I’ll switch to a different gateway plugin and see if that makes a difference.
David Peralty
Stripe is a third party add-on and as such, you’ll have to contact the author for support. http://wordpress.org/extend/plugins/gravity-forms-stripe/
Okay, I stand corrected. It DOES seems to be the Stripe plugin that is the culprit! I switched to Authorize and it works now. Let me know if there’s anything we can do to help you improve the Stripe plugin. Thanks.
Ah, I didn’t realize that wasn’t even your plugin David, thank you. We’ll let them know.
David Peralty
No problem. All my best!
medipass/react-credit-card-input
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
readme.md
React Credit Card Input
A credit/debit card input field for React
NOTE: While React Credit Card Input is still supported, it’s highly recommended to check out the React Payment Inputs (the rewritten version of this library).
| Prop | Type | Default value | Description |
|---|---|---|---|
| cardNumberInputProps | object (optional) | <> | Card number input element props |
| (e.g. < value: cardNumber, onChange: this.handleCardNumberChange, onBlur: this.handleCardNumberBlur, onError: this.handleCardNumberError >) | |||
| cardExpiryInputProps | object (optional) | <> | Card expiry date input element props |
| (e.g. < value: expiry, onChange: this.handleCardExpiryChange, onBlur: this.handleCardExpiryBlur, onError: this.handleCardExpiryError >) | |||
| cardCVCInputProps | object (optional) | <> | Card CVC input element props |
| (e.g. < value: cvc, onChange: this.handleCardCVCChange, onBlur: this.handleCardCVCBlur, onError: this.handleCardCVCError >) | |||
| cardNumberInputRenderer | Function (view input renderer props below) | Card number input renderer | |
| cardExpiryInputRenderer | Function (view input renderer props below) | Card expiry date input renderer | |
| cardCVCInputRenderer | Function (view input renderer props below) | Card CVC input renderer | |
| onError | Function (optional) | Invokes on field errors. Recieves errorMessage argument. | |
| cardImageClassName | string (optional) | » | Class name for the card type image |
| cardImageStyle | object (optional) | <> | Style for the card type image |
| containerClassName | string (optional) | » | Class name for the field container |
| containerStyle | object (optional) | <> | Style for the field container |
| dangerTextClassName | string (optional) | » | Class name for the danger text |
| dangerTextStyle | object (optional) | <> | Style for the danger text container |
| fieldClassName | string (optional) | » | Class name for the field |
| fieldStyle | object (optional) | <> | Style for the field |
| inputClassName | string (optional) | » | Class name for the inputs |
| inputStyle | object (optional) | <> | Style for the inputs |
| invalidClassName | string (optional) | ‘is-invalid’ | Class name for the invalid field |
| invalidStyle | object (optional) | <> | Style for the invalid field |
| inputComponent | string, function, class (optional) | ‘input’ | Input component for the card number, expiry and CVC input |
| customTextLabels | object (optional) | <> | Object that defines custom label values. |
Input renderer props
| Prop | Type | Description |
|---|---|---|
| handleCardNumberChange | Function | Handle card number change. |
| handleCardNumberBlur | Function | Handle card number blur. |
| handleCardExpiryChange | Function | Handle card expiry change. |
| handleCardExpiryBlur | Function | Handle card expiry blur. |
| handleCardCVCChange | Function | Handle card CVC change. |
| handleCardCVCBlur | Function | Handle card CVC blur. |
| props | Object | Input component props |
Custom input renderer usage
Custom text labels usage
Contributing to react-credit-card-input is easy! With four simple steps:
Keep getting «Card number is invalid» about react-credit-card-input HOT 3 OPEN
Am I missing something?
Comments (3)
That is because 4343 4343 4343 4343 is invalid.
TommyLeong commented on January 7, 2021
@olitomas Good info about the link you shared (Luhn Algorithm Check), but I’ve tried with my actual VISA credit card as well and it didn’t get passed either. Why was that?
olitomas commented on January 7, 2021
Thats kind of hard to know without knowing your credit card number. and sending a stranger on the internet your credit card number is a recipe for a bad time! So you are going to have to figure that one out for your self 😉
Related Issues (20)
Recommend Projects
A declarative, efficient, and flexible JavaScript library for building user interfaces.
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
TensorFlow
An Open Source Machine Learning Framework for Everyone
Django
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
Recommend Topics
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
server
A server is a program made to process requests and deliver data to clients.
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Visualization
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
Recommend Org
We are working to build community through open source technology. NB: members must have two-factor auth.
Microsoft
Open source projects and samples from Microsoft.
medipass / react-credit-card-input Goto Github PK
💳 A credit/debit card input field for React
License: MIT License
JavaScript 99.23% CSS 0.77%
react-credit-card-input’s Introduction
React Credit Card Input
A credit/debit card input field for React
NOTE: While React Credit Card Input is still supported, it’s highly recommended to check out the React Payment Inputs (the rewritten version of this library).
| Prop | Type | Default value | Description |
|---|---|---|---|
| cardNumberInputProps | object (optional) | <> | Card number input element props |
| (e.g. < value: cardNumber, onChange: this.handleCardNumberChange, onBlur: this.handleCardNumberBlur, onError: this.handleCardNumberError >) | |||
| cardExpiryInputProps | object (optional) | <> | Card expiry date input element props |
| (e.g. < value: expiry, onChange: this.handleCardExpiryChange, onBlur: this.handleCardExpiryBlur, onError: this.handleCardExpiryError >) | |||
| cardCVCInputProps | object (optional) | <> | Card CVC input element props |
| (e.g. < value: cvc, onChange: this.handleCardCVCChange, onBlur: this.handleCardCVCBlur, onError: this.handleCardCVCError >) | |||
| cardNumberInputRenderer | Function (view input renderer props below) | Card number input renderer | |
| cardExpiryInputRenderer | Function (view input renderer props below) | Card expiry date input renderer | |
| cardCVCInputRenderer | Function (view input renderer props below) | Card CVC input renderer | |
| onError | Function (optional) | Invokes on field errors. Recieves errorMessage argument. | |
| cardImageClassName | string (optional) | » | Class name for the card type image |
| cardImageStyle | object (optional) | <> | Style for the card type image |
| containerClassName | string (optional) | » | Class name for the field container |
| containerStyle | object (optional) | <> | Style for the field container |
| dangerTextClassName | string (optional) | » | Class name for the danger text |
| dangerTextStyle | object (optional) | <> | Style for the danger text container |
| fieldClassName | string (optional) | » | Class name for the field |
| fieldStyle | object (optional) | <> | Style for the field |
| inputClassName | string (optional) | » | Class name for the inputs |
| inputStyle | object (optional) | <> | Style for the inputs |
| invalidClassName | string (optional) | ‘is-invalid’ | Class name for the invalid field |
| invalidStyle | object (optional) | <> | Style for the invalid field |
| inputComponent | string, function, class (optional) | ‘input’ | Input component for the card number, expiry and CVC input |
| customTextLabels | object (optional) | <> | Object that defines custom label values. |
Input renderer props
| Prop | Type | Description |
|---|---|---|
| handleCardNumberChange | Function | Handle card number change. |
| handleCardNumberBlur | Function | Handle card number blur. |
| handleCardExpiryChange | Function | Handle card expiry change. |
| handleCardExpiryBlur | Function | Handle card expiry blur. |
| handleCardCVCChange | Function | Handle card CVC change. |
| handleCardCVCBlur | Function | Handle card CVC blur. |
| props | Object | Input component props |
Custom input renderer usage
Custom text labels usage
Contributing to react-credit-card-input is easy! With four simple steps:
react-credit-card-input’s People
Contributors
Stargazers
Watchers
Forkers
react-credit-card-input’s Issues
Error message is not retained
It is possible to enter an invalid cc number, leave the field and get no error message.
-When I enter an invalid CC number, an error message appears (Expected).
-When I jump to the exp date and the cvc, the number validation error disappears (Expected I guess, since I’m technically on a different input).
-When I leave the entire credit card field (blur event), the cc number is still invalid, but shows no error message and no onError event occurs (not expected). I would expect the field to tell the user there is an error with their input, or that the onError event triggers since the entry was invalid.
Steps to reproduce.
Use with preact
Would be great if I could use this awesome component with preact.
I get the error
Warning: setState(. ): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op.
no event onKeyDown props
i can’t catch event onKeyDown in props,
Access to error handler
Thanks so much for this awesome library. Really appreciate all the hard work that’s gone into it.
Im wondering if there is a way to have access to the valid / invalid state via an onChange callback of some kind. Looking to see if the entered card is valid, and if it is, allow the user to move on to the next part of the form.
Issues with Input Style
How do you add style to one of the field? Like if I do not want CVV to show
OnBlur event improvement
Hi, your credit card solution for react very nice!
For example, if I’d like to disable submit button, if at least one input are invalid.
And if invalid card, no error after filling CVC and OnBlur
Awesome but would love typescript types ;)_
Can’t type for expiry date
I’m unable to input anything for the expiry date. The error I’m getting in the console is this:
TypeError: Cannot read property ‘invalidExpiryDate’ of undefined
To fix this issue, I had to add a customTextLabel object with expiryError.
But customTextLabel is optional. So this seems like a bug to look into.
payment module is overriding global Payments
The npm module payment is overriding/setting a global Payments variable. This is causing problems, we have a global Payments variable. Is it possible to turn this global ovveriding off? Or move away from payment module to another drop-in replacement?
Support for mobile style
The credit card form is not correctly visualized in mobile screen.
How to reset state?
So that there’s no errors and specific card images.
What branch is the demo code on?
Awesome package! Thanks for all your hard work!
I noticed that there is a slight difference in the code that is pulled from master versus the demo at https://medipass.github.io/react-credit-card-input. Where is that code located?
Can you please provide the code that is being used on the demo?
Callback for Error to Valid State
Field layouts
Is the layout restricted to the exact order of the fields? I would like to put each of the input fields in a separate div and place the credit card icons in a different position. Is this possible with the current implementation? If not, what is the best way to go about using the code you wrote and changing it to suit my needs?
Card image animations
Would be super dope if the card image could have a little animation when the card type has changed!
Bug with few invalid values
Result
form is valid but card number and expiry date is not valid
Expected result
form should not be valid and error message that card number is not valid.
Possible solution
Check if all fields valid, not only current.
Not working with Diners Club cards
How this work with Diners Club cards. I tried with stripe test card its not working.
Card number : 3056930009020004
Upgrade styled-components
Styled components is at 3.3.3, but this still uses 2.x. If your app uses 3.x, and includes this, there are some crazy results.
Maybe a peer dep would be better?
Chrome dev console warning: Invalid DOM property `maxlength`
Displaying a default CreditCardInput in a react app generates the following warning in the developer console:
When you want to edit credit card number cursor should remain at the same position
expected result :
you should keep cursor position
Tested :
Was tested on demo page from here
Possibility to input invalid credit card number
If I start to input the invalid credit card number, component fails to
Uncaught TypeError: Object(. ) is not a function
Card: validation failed
When input expiry date with any pervious month of the current year, it doesn’t show any error.
Use Rollup instead of Webpack
is there a way to check debit card number
cardNumberInputRenderer is not a function
By using provided examples there is an exeption thrown
Propper fix for this is to add following properties:
Seems like such function supposed to be default value but it is not set in the latest version of the lib
Postal Code?
Is only USA supported? How about the countries that have postal codes and not a zip code?
Pattern Regex fails
Keep getting «Card number is invalid»
Am I missing something?
Customize labels
Is there a way to the change text, e.g. Card number, Card number is invalid, etc?
More meaningful error messages
The error messages are pretty generic at the moment. If an input is invalid, it will just display that the input is invalid (e.g. ‘Card number is invalid’). Would be nice to have more meaningful error messages such as ‘Card number is too short’.
Here are the cases I can think of off the top of my head:
Example with Stripe?
Has anyone managed to use this with Stripe? If so, can you share a proof of concept implementation?
I’m unable to use amex card with this library upon entering amex card no. I get validation error given in attached image:
Is there a way to access the card type value?
I need a way to get the card type value. Is there a way to that atm?
Thanks for the hard work!
Flowify
Chucking Flow into the project would be sweet!
Invalid expiry date UX
The invalid expiry date UX is a bit shit atm. When you type an invalid month (e.g. 43 ), then you can set a 4-digit year, when it’s only meant to be a 2-digit year.
It is expected that when you enter an invalid month, you can still only enter a 2-digit year.
Tests are failing with Jest using CRA
Test suite failed to run
Cannot find module ‘react’ from ‘index.js’
Auto-completion support
Style overrides
Currently, we are unable to override the default styling of the component. It would be great to do so!
I was thinking style (styled-components) overrides for the following:
and class overrides for the following:
Recommend Projects
A declarative, efficient, and flexible JavaScript library for building user interfaces.
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
TensorFlow
An Open Source Machine Learning Framework for Everyone
Django
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
Recommend Topics
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
server
A server is a program made to process requests and deliver data to clients.
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Visualization
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
Recommend Org
We are working to build community through open source technology. NB: members must have two-factor auth.
Microsoft
Open source projects and samples from Microsoft.
Все об обработке платежей
Коды ответов статусов транзакций
В большинстве случаев транзакции авторизуются успешно, но может случиться так, что транзакция не будет авторизована, и карта клиента будет отклонена банком-эмитентом или обработчиком платежей. В этом случае вы получите конкретный код ошибки для транзакции с конкретным клиентом. Иногда этот код кажется неоднозначным и требует большего объяснения.




















