# Simulate a decline

[Choose what to test in the sandbox](https://devportal.qa.winkpg.io/docs/decide/choose-what-to-test.md): Which sandbox scenario proves the part of your integration you're about to ship, and the blueprint that runs it.

Send a sale the sandbox always refuses, and handle the refusal where it arrives: in the response body.

**Your answers so far**

- What are you testing next? What my code does when a payment is refused or comes back.
- Which refusal do you need to see? A card decline.

**What to build**

Run the card decline blueprint. Branch on resultCode and declineReasonCode, never on the description text, and decide from the reason code whether the payment is worth retrying.

**Worth knowing**

- A decline is an HTTP success carrying a refused transaction. Code that only checks the status code treats it as an approval.

**Where to go next**

- [Simulate a card decline](https://devportal.qa.winkpg.io/docs/blueprints/simulate-a-card-decline.md)
- [Understanding declines and rejections](https://devportal.qa.winkpg.io/docs/guides/understanding-declines-and-rejections.md)

- [Start over](https://devportal.qa.winkpg.io/docs/decide/choose-what-to-test.md): go back to the first question.

## See also

- [All documentation](https://devportal.qa.winkpg.io/llms.txt): the machine-readable index of every public page on this site.
