# Run a payment end to end

[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.

Create a sale, read it back, and make the sandbox decline you once, all from one blueprint.

**Your answers so far**

- What are you testing next? A payment going through, start to finish.

**What to build**

Run the first-payment blueprint against a sandbox merchant. It creates a card sale at an amount the sandbox always approves, reads the transaction back, and then sends a declining amount so you see both shapes of response before you write code against either.

**Worth knowing**

- The sandbox picks the result from the amount, the billing ZIP, and the security code, not from the card number. Use the blueprint's amounts rather than inventing your own.
- Send an idempotency key from your first request, so it's already in place when you test retries.

**Where to go next**

- [Accept your first payment](https://devportal.qa.winkpg.io/docs/blueprints/accept-your-first-payment.md)
- [Direct API quickstart](https://devportal.qa.winkpg.io/docs/guides/quickstart-direct-api.md)
- [Getting started with the API](https://devportal.qa.winkpg.io/docs/guides/api-getting-started.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.
