Simulators
PayPal Business UI
The PayPal Business UI draws the simulator’s state as PayPal’s merchant dashboard, so you can watch your integration’s effect and act as the merchant and the buyer would. Open $RYSTIC_URL/_rystic/ui in a browser:
curl -s -o /dev/null -w '%{http_code}\n' "$RYSTIC_URL/_rystic/ui"
# -> 200
The card shows Home, Activity and each transaction’s details, and redraws live as your integration calls the API.
Home and Activity
Home shows the PayPal balance, recent activity and the orders and authorizations waiting on you. Activity lists every capture, refund and authorization, and each order with no payment yet, with gross, fee and net; search matches a name, email, invoice or id. The balance is derived, captures’ net minus refunds with pending ones excluded: the simulator keeps none.
Act as the merchant
A transaction’s page refunds a capture in full or in part, captures or voids an authorization and captures or authorizes an approved order. Each action goes through the simulator’s own /v2/ routes with a fresh PayPal-Request-Id, as your server would. A refusal shows PayPal’s error body, and nothing is retried.
Approve as the buyer
Approve stands in for the buyer’s step on paypal.com. It writes a CREATED order as APPROVED, with the payer you pick, through POST /_rystic/seed, so your integration can capture or authorize it. Approval is atomic: it is refused if the order’s state changed or the scenario was reset, and it never approves a PAYER_ACTION_REQUIRED order.
Differs from PayPal: no redirect to your return_url follows the approval.
Beside the transactions
Five more panels sit beside the transactions:
| Panel | Shows |
|---|---|
| Your integration | the live API calls |
| Events | the event log |
| Authorizations | reauthorization |
| Request-Id keys | the stored PayPal-Request-Id responses |
| OAuth tokens | the tokens minted here |
Authorization capacity counts every capture across the reauthorization chain, refunded ones included. Replaced holds stay visible but offer no merchant actions.
What it does not run
Pay & Get Paid, Disputes, Reports, transfers and receipts are drawn but send nothing: the simulator does not model them. The page contacts nothing but the simulator. A reset or scenario load closes open forms, and a reply from the previous scenario cannot change the new one.