Skip to main content

Sandbox Testing

Use the sandbox to build and test your integration end to end before go-live. Sandbox and production are separate: credentials, sessions and data do not carry across.

Environments​

EnvironmentWidget base URLPurpose
Sandboxhttps://vas-widget-sandbox.pagamio.techDevelopment and testing.
ProductionProvided at go-liveLive customers and real money.

In the sandbox, purchases run against the Pagamio VAS sandbox, so no real product is delivered. Point your wallet integration at your own test wallet API; Pagamio's sandbox calls it exactly as production will.

Widget URLs look like https://vas-widget-sandbox.pagamio.tech/w/{partnerCode}/. Server-to-server calls go to https://vas-widget-sandbox.pagamio.tech/partner/v1/....

Test Plan​

Run at least these scenarios and confirm both the widget and your own ledger.

#ScenarioHow to triggerExpect
1Session and launchCreate a session, or sign a launch token, and open the URL.Widget shows your branding and the categories.
2Successful purchaseBuy a low-value product with a funded test wallet.Receipt shown; wallet hold then capture; transaction.completed bridge event; transaction COMPLETED.
3Insufficient fundsUse a test wallet with too little balance."Insufficient funds in your wallet."; no deduction; transaction.failed event; failureCode INSUFFICIENT_FUNDS.
4Inactive walletUse a blocked or inactive test wallet."Your wallet is not active. Please contact our support."
5Unknown customerUse a customer your wallet does not know."We couldn't find a wallet for your account. Please contact our support."
6Provider failureBuy a sandbox product that fails (ask Pagamio for a test product or number).Hold released; purchase failed; wallet balance restored.
7Replayed hold/captureHave your wallet receive the same reference twice (a retry).No double movement; idempotent response.
8Slow walletDelay your wallet response beyond the read timeout.Hold confirmed by query and the purchase continues, or the purchase fails with a timeout message and a hold found by query is released. Without a query endpoint, the hold lapses at its TTL.
9Close and returnClose the widget in web-view, iframe and (for launch) with return_url.Bridge close event received, or redirect to return_url.
10Expired sessionWait past the idle timeout, then act in the widget."Your session has expired"; open a new session.
11StatementFetch yesterday's payment legs.Your ledger matches each outcome.

For sandbox test products, test numbers and funded test customers, ask your Pagamio contact. Never test with real customer data.

Debugging Checklist​

SymptomCheck
401 UNAUTHORIZED on /partner/v1Header is Authorization: ApiKey pk_... (not Bearer); key is for this environment.
403 FORBIDDENThe key lacks the scope (sessions:create, transactions:read, reconciliation:read).
"This link is no longer valid" after a launchSee common rejections.
Widget refuses to load in an iframeYour page origin is not on the allowed origins list, or includes a path.
Purchase fails with "Something went wrong"Your wallet returned a 4xx without a recognised reason; check your wallet logs for the X-Correlation-Id.
Hold stays with no captureCapture or release is being retried; check your wallet API's availability. See Timing Requirements.

When contacting Pagamio support, include your partner code, the environment, the approximate time, the transaction id or payment-leg reference, and the X-Correlation-Id if you have it. Never send API keys, launch secrets or tokens.


Last updated: September 2026