VORA — Payment Routing
VORA is Von Payments' gateway-orchestration layer. It picks the underlying payment processor at payment time so you don't have to.
From your perspective as a developer, VORA is transparent. You always call the same endpoint — POST /v1/sessions — and we handle processor selection, failover, and reconciliation. You do not need to know which processor fires a given charge.
Why it exists
Every merchant on Von Payments is attached to exactly one "entry point" for their payments. That entry point is one of three things:
| Entry point | What happens at payment time |
|---|---|
| Direct gateway | We call a single processor directly. No router in between. |
| VORA router | We hand the payment to VORA, which internally picks a processor based on cost, geography, and failover rules. |
| Third-party router (legacy) | We hand the payment to an external orchestrator. |
From your code, all three look identical. POST /v1/sessions returns a checkoutUrl and the buyer pays on our hosted page.
Note: The active entry point also determines the submit semantics of the Embedded Fields SDK (
vora.js). On some entry points, calling submit is pure tokenization — it returns a reusablevp_pmt_*token and charges nothing. On the charge-and-save flow, submit charges the card on the spot and (with a buyer on the session) also vaults a reusable token in the same step. Your Embedded Fields code must handle both, so it discriminates on the result shape rather than assuming a token is always returned. See Charge-and-save for the result-shape contract.
What changes in your integration
Nothing. Session creation is unchanged, session retrieval is unchanged, return-signature verification is unchanged. VORA is entirely server-side inside Von Payments — none of its state is exposed on the merchant API.
Processor selection state (which processor handled a charge, the processor-side merchant ID, etc.) lives in internal Von Payments systems and surfaces only to merchants through the Dashboard and Ops tooling — not through the public API.
What you don't need to do
- Choose a processor. VORA does that.
- Handle processor-specific failure codes. The SDK normalises errors into a single
VonPayError.codeunion. - Build any failover logic. VORA routes around processor outages for you.
- Change your signed-redirect verification. The return signature is the same regardless of which processor was used.
When you might care which processor fired
You usually don't. If you need processor-side reconciliation (matching Von Payments transactions against a processor statement) or support escalation context, contact support with your session ID — we can surface the processor-side transaction ID for that specific session. There is no API surface for bulk processor-level reporting on the merchant side today.
Related
- Session object — field reference
- Checkout overview — end-to-end session flow
- Handle the return — return-URL signature verification