Why did I get result code 12?
PayPal returned result code 12 - Error: Declined.
Multiple issues, explained in the next few paragraphs, can produce this result code.
To resolve the issue, take the appropriate actions for each cause:
Note: If none of the following solutions resolve the error, have the customer contact their card-issuing bank.
Some processors can handle only transaction amounts of $99999.99 or less, while other processors can handle transaction amounts up to $999999.99. If the transaction exceeds the processor's maximum amount, resubmit the transaction in smaller amounts. For example, process six transactions of $200000 each instead of a single transaction of $1200000.
Amount exceeds available funds
To obtain an approval, contact your merchant bank (Visa or MasterCard) or the appropriate bank (American Express, Discover, etc.) for a voice authorization. Have the credit card number, expiration date, and amount available ready before you contact the banks. If the credit card number isn't available, contact the cardholder for information.
Once you receive a voice authorization, submit the transaction by following the steps described in How do I submit a voice authorization?
Declined by the customer's card issuing bank
PayPal doesn't approve or decline any credit card transactions; it only sends the approval or denial from the cardholder's bank to the merchant. Ask the customer for a different credit card, or use another form of payment. You can also contact your merchant bank and try to obtain a voice authorization.
Newly activated account
If you've recently activated your account, wait at least one hour after activation to process any transactions. If the transaction is otherwise valid, wait one hour and retry the transaction.
Invalid expiration date format
PayPal requires the expiration date to be in MMYY format. Using a four-digit year (MMYYYY) will cause some banks to decline transactions because the expiration date is considered invalid. For example, 072018 will be interpreted as 0720 instead of 0718.
Expired or non-matching expiration date
Some card-issuing banks will decline the transaction if the expiration date doesn't match or is expired. However, as a goodwill gesture to their merchants, other banks will process a transaction even with an expired or incorrect expiration date.
Real credit card numbers on test servers
The Payflow Pro test servers decline all real credit card numbers to prevent acceptance, authorization, and settlement of live transactions. For more information, see How do I test my integration with the Payflow Gateway using the hosted pages?
Pointing to test server
The test servers generate certain results for testing purposes, including a credit card being declined. You can generate specific result codes by adding $1000 to that result code. For example, for result 13 (Referral), submit the amount $1013. If the amount is in the range $1000 to $1999.99 but doesn't correspond to a supported result code, a result 12 (Decline) is returned instead. Any amount of $2000.00 or more also generates a result code 12 (Decline). Live servers don't have this limitation and can process transactions of up to $99999.99.
To post transactions to the live servers, change the endpoint in the API, application, or shopping cart. See How do I test my integration with the Payflow Gateway using the hosted pages? for more details.
Payflow Link - transaction process mode
Here's how to change the Payflow Link configuration to point to the Live servers.
- Log in to your PayPal Manager account.
- Select Service Settings > Set Up under Hosted Checkout Page.
- Select Transaction Process Mode > Live.
- Click Save Changes.
Payflow Pro - level 2 or level 3 cards
Payflow Pro supports only level 1 credit card processing, so obtain an alternate form of payment. If you need to process level 2 or level 3 cards, you must confirm with your merchant bank that level 2 and level 3 purchase cards are supported and upgrade your account.
The ZIP code contains all zeroes
Ensure that the ZIP code you're sending doesn't contain all zeroes, and resubmit for processing.
Trying to perform a voice authorization using the wrong transaction type
You must process a transaction with a voice authorization manually, using the Voice Authorization transaction type. If you use either the Sale or Authorization types, the transaction will fail because it has already been authorized.
Card Security Code (CSC/CVV2) doesn't match
Some processors or card-issuing banks will decline a transaction if the Card Security Code (CSC / CVV2) is sent but doesn't match.
Address Verification Service (AVS) doesn't match
Some processors or card-issuing banks will decline a transaction if the Billing Address (BILLTOSTREET/BILLTOZIP) is sent but doesn't match.