CPN

Payment and Transaction Failure Reasons

When payments or transactions fail, you'll receive a webhook notification containing the failure reason. The following sections outline the reasons that each of these components might fail.

When a payment fails in CPN there are no further actions you can take with that payment ID. You should restart the payment workflow by requesting a new quote and accepting it to create a new payment.

Failure reasonDescription
PAYMENT_EXPIREDThe payment is expired and not able to provide further action.

Resolution: Create a new payment.
INCOMPLETE_TRANSACTIONThe onchain transaction was initiated for the payment but a complete transaction was not finalized before the payment expired.

Resolution: Create a new payment and ensure that the onchain transaction is completed within its valid timeframe.
COMPLIANCE_CHECK_FAILEDThe payment was rejected due a compliance check failure.

Resolution: Verify and correct your compliance information, then create a new payment.
RFI_REJECTEDAfter evaluating additional information through the RFI process, the BFI rejected the payment for compliance reasons.
RFI_PENDINGAn RFI exists on the customer that is in a non-terminal state.

Resolution: Create a new payment and submit the corresponding RFI before it expires.
MANUAL_REVIEW_FAILEDThe BFI received a request for additional compliance information from the recipient's bank. That information is manually collected before the fiat transfer can be processed. If the manual review is unsuccessful, a refund is initiated.
CANCELLEDThe payment is canceled through a support ticket.

Resolution: Create a new payment or contact support.
BFI_FULFILL_FAILEDThe BFI was not able to complete the fiat transfer; a refund is initiated.

Resolution: Once the refund is processed and the webhook is received, handle it accordingly and create a new payment.
UNKNOWNThe payment has failed due to an internal server error.

Resolution: Open a support ticket with all the relevant details for further investigation.

If an onchain transaction fails or becomes stuck, you can create a new transaction or attempt to replace or accelerate the transaction. You may continue to troubleshoot onchain transactions until the payment expires. Note that only one transaction can be associated with a given payment, so you must wait until the current transaction fails or attempt to replace it if you need to update the transaction.

Failure reasonDescription
CPN_PAYMENT_EXPIREDThe payment corresponding to this transaction is expired.

Resolution: Create a new payment and ensure the onchain transaction is completed within its valid timeframe.
SIGNED_TRANSACTION_EXPIRED(Solana only) The signed transaction is expired. Solana requires you to submit a signed transaction within 150 blocks (~1 min).

Resolution: Initiate a new transaction and submit it within the appropriate timeframe.
NONCE_TOO_LOWThe nonce of the signed transaction is lower than the current wallet nonce.

Resolution: Submit a new transaction using the latest nonce value for the wallet.
INSUFFICIENT_GAS_BALANCENot enough native tokens were available in the wallet to cover the gas fee for the transaction.

Resolution: Fund the wallet with the appropriate amount of native tokens and initiate a new transaction.
GAS_PRICE_TOO_LOWThe specified gas fee is too low, which may prevent the transaction from being included in a block.

Resolution: Create a new transaction with a higher gas fee.
INSUFFICIENT_TOKEN_BALANCEThe wallet does not have enough USDC in it for the transfer amount.

Resolution: Fund the wallet with the appropriate amount of USDC for the payment, then initiate a new transaction.
OUT_OF_GASFor EVM chains, the gas limit for the signed transaction is insufficient to cover the execution cost. For Solana, the allocated compute budget falls short of the transaction's requirements, preventing successful execution.

Resolution: Create a new transaction with a higher gas limit.
TX_REPLACEMENT_FAILEDThe transaction replacement failed because another transaction with the same nonce (and higher fee) is already the mempool or was mined first.

If the replacement fails, the original transaction submitted to the blockchain is still executed.
SOL_TX_ALREADY_IN_CACHE(Solana only) The transaction has already been broadcast and is present in the network's cache.

Resolution: Wait for the current transaction's confirmation or failure before proceeding.
TX_ALREADY_CONFIRMEDThe transaction was confirmed onchain before the current broadcast attempt.

Resolution: If this was unexpected, open a support ticket for further investigation.
FAILED_ONCHAINThe transaction failed execution on the blockchain.

Resolution: Review the onchain error, correct any issues, and submit a new transaction.
SOL_BLOCKHASH_EXPIRED(Solana only) The Solana blockhash assigned to the transaction has expired.

Resolution: Initiate a new transaction.
TRANSACTION_EXPIREDThe transaction is expired and you are not able to perform any further actions.

Resolution: Initiate a new transaction.
Did this page help you?
© 2023-2025 Circle Technology Services, LLC. All rights reserved.