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

# Testing

> Test a Vapi Ringup integration end to end: canned demos, a private-line rehearsal, and post-go-live verification, all against the shared sandbox.

Vapi tests against Ringup's shared sandbox, the same one every integration uses. Read
[Testing](/concepts/testing) first for what the sandbox is, the merchant and caller fixtures,
and the test card. This page covers the Vapi-specific tooling: the `ringup-vapi-init` commands
that wire demos and rehearsals for you.

## The sandbox test card

Every sandbox payment runs on one card. When a sandbox call texts a pay link, enter this card:

| Field             | Value                                 |
| ----------------- | ------------------------------------- |
| Card number       | `4111 1111 1111 1111`                 |
| Expiry            | any future date (for example `12/34`) |
| CVV               | any 3 digits (for example `111`)      |
| ZIP / postal code | any (for example `94103`)             |

<Note>
  To test a declined payment, use `4000 0000 0000 0002`. It always declines, so you can
  exercise your failure path and the `checkout.failed` webhook.
</Note>

The recognized test caller `+14155550142` already has this card on file, so a call from that
number charges the saved card without a link.

## Three tiers of testing

<Steps>
  <Step title="Canned demos">
    `npx ringup-vapi-init test` builds a complete demo squad in your org: sandbox merchant,
    demo caller, try-saying script covering the required and optional branches. Zero contact
    with anything you own; `test --clean` removes it.
  </Step>

  <Step title="Rehearsal on a private line">
    `npx ringup-vapi-init stage` wires a disposable copy of your own agent to a free test
    number. You hear your actual agent, your actual prompts, and the full payment flow on a
    real phone call, before anything you own changes.
  </Step>

  <Step title="Post-go-live verification">
    `npx ringup-vapi-init check` reads the wiring from the Vapi API (squad structure,
    tool shapes, live state, transcriber model names) and is the source of truth when the
    dashboard renders squad wiring incompletely.
  </Step>
</Steps>

## Reading test results

**The charge response is ground truth, not the assistant's words.** Only a `succeeded`
charge result with a payment id and confirmation code proves a payment happened. An agent
can narrate success it did not have; the API result cannot.

**Text-chat smoke tests cannot prove voice.** Vapi chat pipelines assemble handoffs
differently from voice pipelines. Validate squads with a voice call.
