Errors and codes

Payments operation errors

These error codes explain the qp_status_code field in the response when performing operations on a payment.

Error Categories

  • 3xxxx: Authentication/SCA required (action needed to proceed)
  • 4xxxx: Client errors (rejections, validation errors)
  • 5xxxx: Server/communication errors
Code Message Description
30100 3-D Secure required Transaction requires 3-D Secure authentication before proceeding.
30101 SCA required Strong Customer Authentication required per PSD2 regulations.
40000 Rejected by acquirer Transaction rejected by acquirer or payment network. Always check aq_status_code and aq_status_msg for specific reason.
40001 Request data error Request contained invalid or malformed data.
40002 Authorization expired Authorization expired and can no longer be used for capture.
40003 Operation aborted Operation was aborted by merchant or system.
40300 Fraud block Transaction blocked by fraud detection systems.
41000 CoF deleted by scheme Card-on-file token deleted by the card issuer (bank) and no longer available.
42300 CoF token suspended by scheme Card-on-file token suspended by the card issuer (bank) and cannot be used.
50000 Gateway Error Unexpected internal error in QuickPay system. Development team automatically notified.
50300 Communications Error Communication error with acquirer, payment network, or tokenization service.

Important Notes

About Status Code 40000 (REJECTED)

This is a general rejection code covering many decline scenarios. Always check the aq_status_code and aq_status_msg fields for acquirer-specific details about why the transaction was rejected.

When you receive 40000:

  1. Check aq_status_code and aq_status_msg for the specific reason
  2. Determine if the error is retryable (e.g., insufficient funds might be retryable, but expired card is not)
  3. Provide appropriate feedback to end users based on the specific error
  4. Log both qp_status_code and aq_status_code for debugging and analytics
  • qp_status_msg: Human-readable message for the status code
  • aq_status_code: Acquirer-specific status code (varies by acquirer)
  • aq_status_msg: Acquirer-specific status message with detailed rejection reason
  • pending: Boolean indicating if operation is still pending
  • data: Hash containing additional data (e.g., threed_url for 3DS authentication when qp_status_code is 30100 or 30101)