Skip to main content

What sandbox is

Sandbox is a test version of the live API. Every endpoint behaves identically: same validation, same auth, same error envelope, same response shape. But:
  • No wallet impact — sandbox transactions do not move real funds
  • Callbacks are not sent for sandbox transactions
Switch by changing the base URL — credentials, payloads, and code stay the same.
Live:    https://api.pontisglobe.com
Sandbox: https://sandbox.pontisglobe.com

Trigger codes

In sandbox, the trailing cents of source_amount decide the outcome:
source_amount ends insendPayoutRequestgetPayoutStatus later →
.00pendingcompleted
.01pendingfailed (Insufficient funds)
.02pendingfailed (Recipient not found)
.03pendingpending (stays pending — useful for polling tests)
.04pendingfailed (Network error)
Any other trailing cents fall back to the .00 path.

Example

// Will eventually settle as completed
await sendPayoutRequest({ source_amount: '10.00', ... })

// Will fail with "Insufficient funds"
await sendPayoutRequest({ source_amount: '10.01', ... })

// Will stay pending — polled status returns 'pending' forever
await sendPayoutRequest({ source_amount: '10.03', ... })

Sandbox transaction IDs

Sandbox transaction_ids are prefixed sb_ so they’re easy to recognize and impossible to confuse with live IDs:
sb_a42b69dcd78f_01_tg3qwn_30e136b2
A sb_ ID returned to one account cannot be queried by another.

What sandbox is NOT for

  • Load testing (use a staging or dedicated test environment)
  • Verifying callback delivery (callbacks are not sent in sandbox — see Callbacks)
  • Validating exchange rates (quotes return placeholder rates)