GetWidgetUrlLocked) — pass a quoteId you created via POST /v1/quotes. The widget uses that exact quote and does not refresh it. If the quote expires before the user finishes, they must close the window and start over.GetWidgetUrlRefresh) — pass the route parameters (network, rampType, inputAmount, plus fiat / cryptoLocked / paymentMethod as relevant for the direction). The widget creates and refreshes quotes on demand for the user.externalSessionId is required in both modes and is echoed back in webhook payloads.curl --location '/v1/session/create' \
--header 'Content-Type: application/json' \
--data '{
"apiKey": "pk_live_...",
"callbackUrl": "https://partner.example.com/ramp/complete",
"cryptoLocked": "USDC",
"externalSessionId": "my-session-id",
"fiat": "BRL",
"inputAmount": "150",
"network": "polygon",
"paymentMethod": "pix",
"rampType": "BUY",
"walletAddressLocked": "0x1234567890123456789012345678901234567890"
}'{
"url": "https://widget.vortexfinance.co/?externalSessionId=my-session-id"eId=quote_01HXY..."
}