CPN

Magic Values for Testing

You can use specific values when you create a payment on testnet to get the CPN API to return certain statuses. These magic values can be useful to test how your integration handles specific states and situations of payments. Magic values can be used in the sandbox environment.

The following sections outline the magic values you can pass to the sandbox API and the effect that they have on the response from the API.

You can test payments by providing magic values on the ORIGINATOR_NAME field when making requests to the create a payment endpoint. The following table outlines the magic values and their effects on the payment response:

Magic valueResponse
FailedSynchronous payment failure. Payment is returned with the FAILED status in the synchronous response.
AsyncFailedAsynchronous payment failure. Payment is returned with the CREATED status in the synchronous response, followed by a webhook that updates the payment to the FAILED status.
AsyncSuccessAsynchronous payment success. Payment is returned with the CREATED status in the synchronous response, followed by a webhook that updates the payment to the CRYPTO_FUNDS_PENDING status.
CreateRfiPayment is returned with an active RFI in the synchronous response.
AsyncRfiPayment is returned with the CREATED status in the synchronous response, followed by a webhook that creates an RFI on the payment.
DelayedPayment is returned with the CRYPTO_FUNDS_PENDING status in the synchronous response. After an onchain transaction is received and after the FIAT_PAYMENT_INITIATED notification occurs, the fiat settlement time on the payment increases and a payment delayed webhook notifications is sent. The COMPLETED webhook is delayed by a few seconds.
ExpiredPayment is returned with the CRYPTO_FUNDS_PENDING status in the synchronous response. After a few seconds the payment status is updated to FAILED with the reason PAYMENT_EXPIRED.
FailThenRefundWithCompletedPayment is returned with the CRYPTO_FUNDS_PENDING status in the synchronous response. After an onchain transaction is received and after the FIAT_PAYMENT_INITATED notification occurs, the payment is moved to a FAILED state and a refund with the COMPLETED status is added to the payment.

Using this magic value just fails the payment and sends the refund notification. It does not send the funds from the onchain transaction back. The txHash returned in the sandbox environment is a randomly-generated transaction hash.

You can test RFIs by providing magic values on the NAME field when making requests to the submit RFI data endpoint. The following table outlines the magic values and their effects on the RFI response:

Magic valueResponse
InReviewStuck RFI. RFI stays in the IN_REVIEW status.
RejectedRFI is rejected.
Did this page help you?
© 2023-2025 Circle Technology Services, LLC. All rights reserved.