Review error codes for the QuickBooks Payments API

You may see errors during development or when your app is live and in-production.

Use the error codes to identify the error and the descriptions to narrow down the specific issue.

HTTP status codes

Parse the response code to get more details for the request status.

Fault and error elements

This is the general error response format: ​

1
2
3
4
5
6
7
8
9
{
   "errors": [{
      "code": "PMT-10305",
      "type": "SERVER",
      "message": "No records found for given input",
      "detail": "No records found for given input",
      "infoLink": "https://developer.intuit.com/app/developer/qbpayments/docs/develop/troubleshooting/error-codes"
   }]
}
Error by error types

Follow guidance in the error message response for details and solutions.

Error type Range Description
success 0 Success response.
fraud_warning PMT-1000 - PMT-1999

Based on the merchant’s fraud preferences, we attempted to cancel a transaction but we weren’t able to. Review the detail field to see what failed the fraud check.

Note, this warning always triggers for auth-only transactions since auth-only transactions aren’t voidable.

fraud_error PMT-2000 - PMT-2999 We automatically canceled a transaction based on the merchant’s fraud preferences. The preference is based on the credit or debit card’s cvc / address validation. Review the detail field to see what failed the fraud check.
account_error PMT-3000 - PMT-3999​ The request couldn’t be completed due to an account error.
invalid_request PMT-4000 - PMT-4999 The request violates the API specification, or contains a reference to an unknown object.
transaction_declined PMT-5000 through - PMT-5999 The transaction was declined. The message is descriptive and displayable to the user.
system_error PMT-6000 - PMT-6999​ A system error is preventing processing. This should be temporary. The message identifies temporary issue with our servers.
Errors by specific error code
Error code Description
PMT-1000 (fraud_warning)

The charge with ID {0} was processed, but had an incorrect CVC value. The merchant wanted to refund this transaction, but we were unsuccessful.

The merchant must refund this transaction manually. Keep in mind, charge transactions with capture set to false can’t be refunded.

{0} is the transaction ID.

PMT-1001 (fraud_warning)

The charge with ID {0} was processed, but we couldn’t validate the CVC. The merchant wanted to refund this transaction, but we were unsuccessful.

The merchant must refund this transaction manually. Keep in mind, charge transactions with capture set to false can’t be refunded.

{0} is the transaction ID.

PMT-1002 (fraud_warning)

The charge with ID {0} was processed, but had incorrect address information. The merchant wanted to refund this transaction, but we were unsuccessful.

The merchant must refund this transaction manually. Keep in mind, charge transactions with capture set to false can’t be refunded.

{0} is the transaction ID.

PMT-1003 (fraud_warning)

The charge with ID {0} was processed, but we couldn’t validate the address. The merchant wanted to refund this transaction, but we were unsuccessful.

The merchant must refund this transaction manually. Keep in mind, charge transactions with capture set to false can’t be refunded.

{0} is the transaction ID.

PMT-2000 (fraud_error) Indicates an incorrect CVC.
PMT-2001 (fraud_error) The CVC check is unavailable.
PMT-2002 (fraud_error) Indicates incorrect address information.
PMT-2003 (fraud_error) Address information is unavailable.
PMT-3000 (account_error) We couldn’t validate the merchant account.
PMT-4000 (invalid_request) {0} is invalid.
PMT-4001 (invalid_request) No {0} found.
PMT-4002 (invalid_request) {0} is required.
PMT-4009 (invalid_request) {0} already exists. This indicates a resource conflict.
PMT-4012 (invalid_request) {0} can’t be issued. The check void or refund can’t be processed due to a validation error. The amount is either too big or too long has passed.
PMT-5000 (transaction_declined) The request to process this transaction was declined.
PMT-5001 (transaction_declined) The merchant doesn’t support this payment method.
PMT-5002 (transaction_declined) We flagged and declined the transaction due to risk.
PMT-6000 (system_error) A temporary issue prevented this request from being processed.