raas_sandbox_* keys) you can force three kinds of test cases: test cards (PAN / debit vs credit), cardholder directives (card add / destination card), and magic amounts (operation lifecycle). Magic amounts are also how you test user cancellation.
Test cards
Use a Luhn-valid Visa or Mastercard, any future expiry, and a 3-digit CVV (123). Most flows accept Visa and Mastercard only.
On sandbox partners, card validation runs in the Raas CVS stub (no live Card Validation call). The stub classifies debit vs credit from the last four digits — brand is ignored:
Canonical PANs:
If the corridor only offers debit (for example some Banrural fund-request routes), a
*4444 card is saved but does not appear in the payment-method picker. Use a debit PAN (4111…1111 or 4242…4242) for those corridors.#dbg on the cardholder name to simulate accept / reject — see Cardholder directives. Example happy path: name Ale Martin #dbg, PAN 4111111111111111.
Magic amounts
The cents of the amount the user types select a simulated transfer outcome. Any other cents run the happy path. Use the anchored amount: send amount on send-anchored quotes, receive amount on receive-anchored quotes. Examples:100.04, 25.77, 50.78.
Use a two-decimal currency (USD, MXN, …). Currencies with 0 or 1 decimal cannot express magic cents and always run the happy path.Delayed settlement (
.20, .21–.30) is an in-memory timer on the sandbox instance. A backend restart cancels a pending delay and the operation stays processing until you recreate it or a live corridor event arrives.Testing user cancellation
Why the button is time-limited
End users can cancel a transfer only for a short window. This follows the U.S. Remittance Transfer Rule (Regulation E, Subpart B). Under 12 CFR 1005.34, a sender may cancel within 30 minutes after making payment, as long as the funds have not been picked up by the recipient or deposited into the recipient’s account. The widget applies the same rule. Cancel transfer shows on the receipt and on the operation detail view while both of these are true:- Less than 30 minutes have passed since the user pressed Make Payment. The clock starts when the operation is created, not when the quote was accepted.
- The operation has not settled at the destination. The status is not
completed,failed, orcancelledyet.
Build the scenario
- Create a transfer in sandbox and type an amount whose cents delay settlement. For example,
100.25holds the operation inprocessingfor about 5 minutes. - Finish the flow up to Make Payment and wait for the receipt.
- The receipt shows Cancel transfer with a countdown. Tap it and confirm.
- Check the result:
- The operation moves to
cancelledand your webhook endpoint receivesoperation.cancelled, withcancellationReason. - If funds already moved to the corridor, the widget shows Cancellation in progress and support follows up. Refunds apply only if the funds were not delivered to the recipient.
- When the delay timer ends, it does not bring a cancelled operation back to
completed.
- The operation moves to
For a moment right after Make Payment, the operation may be in an in-flight step, such as funding or execution. The button can be hidden or a tap can be rejected as
IN_FLIGHT. Wait a few seconds and try again. The 30-minute window keeps running.Cardholder directives
When the user adds a funding card or a destination card, append#dbg to the cardholder name (funding field, or the recipient name on push-to-card). The sandbox stub replicates the same #dbg grammar as live Card Validation (NETWORK_STUB).
Format: <name> #dbg k=v k=v …. Bare #dbg is the happy path.
Aliases:
out= for outcome=; deny / reject; review / nr; restrict; approve. push=off also turns off domestic push and fast funds.
ani, avs, cvv, and pen are accepted so recipes match Card Validation, but they do not change the sandbox decision. Use outcome= to force reject / review / restrict.