> ## Documentation Index
> Fetch the complete documentation index at: https://developer.pagou.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Test Data

> Sandbox test cards, documents, and amounts to exercise every payment method and outcome — Pix, Boleto/Voucher, and credit card (including 3DS and tokenization).

Use this page to drive deterministic outcomes in **sandbox** (`https://api.sandbox.pagou.ai`). The
values below let you validate approvals, refusals, 3DS, and asynchronous Pix/Boleto settlement end
to end without moving real money.

<Note>
  These values only work in sandbox. Production outcomes depend on the real payment attempt. Keep
  sandbox and production credentials, webhooks, and base URLs separate (see [Environments](/start-here/environments)).
</Note>

## Pix, Boleto and Voucher

A Pix/Boleto/Voucher charge is created as `waiting_payment` (with a QR code or barcode). The sandbox
settles it to `paid` **15 seconds after** the QR code / barcode is generated when the charge is
eligible. Eligibility is decided by the payer document, or — when no document is sent — by the amount:

| To get a successful payment  | Send                                                                      |
| ---------------------------- | ------------------------------------------------------------------------- |
| By buyer document            | `buyer.document.number` = `06957410600` **or** `39027187819` (any amount) |
| Without an approved document | `amount` = `7300` (R\$ 73,00) and `currency` = `BRL`                      |

Any other amount (without an approved document) stays `pending` and never settles — use this to test
your pending/expiration handling.

<Steps>
  <Step title="Create the charge">
    Send a Pix, Boleto, or Voucher charge with one of the eligible combinations above.
  </Step>

  <Step title="Show the QR code / barcode">
    The response returns a scannable Pix EMV (copia e cola) or a Boleto barcode in `waiting_payment`.
  </Step>

  <Step title="Wait ~15 seconds">
    The sandbox confirms eligible charges and fires the `payment.confirmed` webhook; the transaction
    moves to `paid`.
  </Step>
</Steps>

## Credit card

Any payer information is accepted. The **final status is decided by the card number** — use any
future expiry and any CVV unless noted below.

| Scenario                | Brand      | Number                | Expiry | CVV | Result                          |
| ----------------------- | ---------- | --------------------- | ------ | --- | ------------------------------- |
| Approved (à vista)      | Visa       | `4548 8120 4940 0004` | 12/34  | 123 | `captured`                      |
| Approved (installments) | Mastercard | `5067 2300 0000 9011` | 01/28  | 123 | `captured`                      |
| Approved (installments) | Visa       | `4761 1200 0000 0148` | 01/28  | 123 | `captured`                      |
| Declined                | Visa       | `1111 1111 1111 1117` | 12/34  | 123 | `refused` (`card_declined`)     |
| 3DS Challenge           | Visa       | `4918 0191 9988 3839` | 12/34  | 123 | `three_ds_required` → challenge |
| 3DS Frictionless        | Visa       | `4918 0191 6003 4602` | 12/34  | 123 | `captured` (no challenge)       |
| Tokenization            | —          | `5448 2800 0000 0007` | 01/35  | 123 | tokenizes; charge `captured`    |

### 3DS Challenge

The **3DS Challenge** card returns `three_ds_required` with a `next_action`. Complete the challenge
in the Payment Element (or the sandbox challenge endpoint); on success the transaction settles to
`paid`, on failure to `refused`. See
[Three-D Secure](/frontend/payment-element/three-d-secure) for the browser flow.

### 3DS Frictionless

The **3DS Frictionless** card authenticates without a challenge and is approved directly — use it to
verify the no-challenge happy path.

## Verifying the result

Always trust the webhook, not the synchronous response, as the source of truth:

* Pix/Boleto/Voucher → `payment.confirmed` \~15s after creation (eligible charges).
* Card approved → `captured`; declined → `refused`.

See [Webhooks](/start-here/webhooks) and
[Transaction statuses](/payments/transaction-statuses) for the full lifecycle.

## Next steps

* [Accept Pix payments](/payments/pix/accept-payments)
* [Accept card payments](/payments/cards/overview)
* [Testing and troubleshooting](/frontend/payment-element/testing-and-troubleshooting)
