Overview

What OmiCloud is, what it is not, and the four calls every integration makes.

OmiCloud is a payment routing layer for operators. You integrate once. Behind that one integration, OmiCloud connects you to the payment gateways you have been approved for, chooses the right one for each transaction, and gives you a single transaction object and a single webhook stream no matter which gateway did the work.

What OmiCloud is not

OmiCloud is not a payment service provider and it is non-custodial. It never holds funds:

  • A deposit is collected on a gateway-hosted checkout page. OmiCloud creates the transaction, hands you the URL, and tracks the outcome.
  • A payout is sent by the gateway to a destination the end user owns. OmiCloud submits it and tracks the outcome.

If you have integrated an aggregator such as Meld, MoonPay or Transak before, the shape will be familiar.

Vocabulary

TermMeaning
OperatorYou — the business holding the API key.
GatewayA payment provider OmiCloud routes to on your behalf, e.g. dce.
RouteOne executable combination of gateway, direction, currency, network and payment method, with limits.
SessionA hosted checkout that produces a deposit transaction.
TransactionThe gateway-agnostic record of one deposit or payout. Its reference (txn_…) is the key to everything.
End userYour customer. You identify them with your own endUserId.

The four-call integration

  1. Discover — GET /v1/routes tells you what can be executed right now, with minimum and maximum amounts.
  2. Quote — POST /v1/quotes returns one priced quote per eligible gateway, ranked by OmiCloud's routing score.
  3. Execute — POST /v1/sessions for money in, POST /v1/payouts for money out.
  4. Track — a signed webhook tells you something changed; GET /v1/transactions/{reference} is the source of truth.

Steps 1 and 2 are optional if you only ever use one route; steps 3 and 4 are the integration.

Conventions you will meet everywhere

  • Amounts are decimal strings: "100.00", never 100.0. Floats are rejected.
  • Every response carries a requestId. Quote it when you contact support.
  • Errors share one envelope with a stable code — see Errors.
  • Idempotency is a header — see Idempotency.
  • The API is versioned by date — see Versioning.

Where to next


Did this page help you?