Hosted whitelabel
Your users sign in at your address, see your brand, and never see ours. You write no front end at all.
A whitelabel domain serves the same application app.oropocket.com serves, with your brand applied at runtime from the hostname. There is no bundle to build, no repository to fork and nothing to deploy on your side — the work is a DNS record, a logo and a review.
- Your server:
Point a subdomain at us
A CNAME from something like gold.yourbank.com to whitelabel.oropocket.com. A flattened A record works too.
Reserved: anything under oropocket.com, oropocket.in, localhost, or a bare IP.
- Your server:
Add your brand and copy
Wordmark, logo, square app icon, and the heading, sub-heading and trust items on your sign-in page.
A logo or a wordmark is required — the sign-in screen needs something to show.
- Your server:
Submit for review
We re-check DNS at this moment rather than trusting the last check, then a human looks at the domain and the brand.
- OroPocket:
We provision the host
Once approved we issue the TLS certificate and install the vhost. Approval and go-live are two separate steps.
Usually the same day. Nothing serves until this finishes.
- The user:
They sign in at your address
The session is stamped to you, so every buy and sell on your domain earns you commission.
1. Point a subdomain at us
Create a CNAME from the subdomain you want — most partners use something like gold.yourbank.com — to:
gold.yourbank.com. CNAME whitelabel.oropocket.com.That indirection is deliberate: it means we can move infrastructure without asking every partner to change a record. We follow a CNAME chain up to five hops, so a record pointing through your CDN is fine.
Use Check DNS in the panel to confirm. It is rate-limited to ten checks a minute; propagation usually takes a few minutes and occasionally longer.
2. What hostnames we accept
| Rule | Detail |
|---|---|
| At least one dot | A bare label like intranet is rejected. Apex domains are allowed, though a subdomain is easier to move later. |
| ASCII only | a–z, 0–9, dot and hyphen, up to 255 characters. Convert an internationalised domain to punycode (xn--…) yourself. |
| No wildcards | Something like *.yourbank.com is rejected. One certificate, one name. |
| One domain per partner | A second domain is not currently supported, and a domain already claimed by another partner returns HOST_TAKEN. |
| Reserved | Anything under oropocket.com or oropocket.in, localhost, and bare IP addresses. |
Paste a full URL if it is easier — we strip the scheme, path and port and lower-case what is left.
3. Your brand
You need a logo or a wordmark before you can submit; both is better. Images must be served over https — you can upload them in the panel and we will host them.
| Field | Type | Description | |
|---|---|---|---|
| wordmark | string | optional | Up to 32 characters. Used where there is no logo, and as the logo's alt text. |
| logo_url | string | optional | Your horizontal lockup. PNG on a transparent background reads best. https only. |
| icon_url | string | optional | A SQUARE icon, at least 512×512. This is the browser tab icon and the icon people get when they install your site to a home screen — a wide logo is unreadable there, which is why it is separate. |
| accent | string | optional | A hex colour like #1A73E8. Stored for a future themed build — the interface is black-and-white today, so setting this changes nothing yet. |
4. Your sign-in page
The first thing your users see. Leave any field empty to keep our wording.
| Field | Type | Description | |
|---|---|---|---|
| heading | string | optional | Up to 120 characters. A line break gives you a two-line heading. |
| subheading | string | optional | Up to 160 characters. |
| trust | string[] | optional | Three short items, up to 40 characters each, shown as a row. Leave any blank to drop it — two read as cleanly as three. |
| show_rates | boolean | optional | Show live gold and silver rates on the sign-in page. On by default, and the most persuasive thing on it. |
Before you are live, copy edits apply immediately. Once you are live they queue for review — and your site keeps serving the previously approved copy while they wait, so nothing goes blank. Your domain and certificate are untouched by a copy change.
5. Review, then provisioning
Submitting locks your domain and queues a human review. We re-check DNS at that moment rather than trusting the last check from your panel, so a record removed in between will fail the submission.
| Status | What it means |
|---|---|
| draft | Yours to edit. Point your DNS, then submit. |
| submitted | With us. Your domain and brand fields are locked until we respond. |
| approved | We have said yes. Your domain is not serving yet — see below. |
| live | Serving under TLS, and sessions are being stamped to you. |
| rejected | Read the note, change what it asks for, and submit again. |
Changing a live domain is not self-serve — talk to us. Plan the name accordingly.
6. What a whitelabel session is
When someone signs in on your domain we stamp their session to you, from the request's origin. That stamp is what makes the rest work: every buy and sell they make is routed through you, earns your commission as integration, and lands in your sub-wallet.
| What | How it behaves |
|---|---|
| Always live | There is no sandbox whitelabel session — a domain either serves or it does not. Use sandbox on the API for test flows. |
| Commission | Earned on the trade itself, not on attribution, so it does not depend on who acquired the user or on any time window. |
| Your users list | A user appears there once they transact. Someone who signs in and browses without buying will not show up yet. |
| Merchant markup | Both buy markup and sell markdown apply on your domain. See billing. |
GET /partner/transactions/all, not in GET /partner/trades — that second one is your server-to-server quote history, and a whitelabel buy never creates a quote. Nothing an order stores distinguishes a whitelabel trade from a hosted-embed one; both are simply yours.7. What you can call
Whitelabel grants the full server-to-server surface plus gifting and sending — twelve capabilities, the union of the Raw API and Gifting bundles. You do not get the embed capability, because the point of a whitelabel domain is not using our hosted UI. If you want both, ask for the hosted use case as well.
Everything in the Raw API guide works against your users, and webhooks fire as normal.
8. What this is not
Worth knowing before you plan around it.
| Not included | Why |
|---|---|
| A native app | This is a web app on your own domain. There is no iOS or Android build under your name and no app-store listing. Users can install it to a home screen as a PWA. |
| Push notifications | There is no web-push path in the application. A home-screen install is not the same thing. |
| Your own release train | Every whitelabel domain serves one shared build, so you get improvements the day we ship them — and cannot pin a version or roll one back independently. |
| Branded link previews | Link unfurls in WhatsApp or Slack stay OroPocket-branded, because crawlers do not run the JavaScript that applies your brand. |
| A themed interface | The chrome is black-and-white for everyone today. Your logo, wordmark, icon and copy are what change. |
| Full branding on small screens | The heading, sub-heading, trust row and live rates render on displays 1024px and wider. Narrower screens show your wordmark. |
9. Branding, if you need it yourself
Your brand is public and unauthenticated, so you can read it from your own marketing site if that is useful.
{
"statusCode": 200,
"data": {
"partnerId": 42,
"wordmark": "YOURBANK GOLD",
"logoUrl": "https://api.oropocket.com/uploads/....png",
"iconUrl": "https://api.oropocket.com/uploads/....png",
"accent": "#000000",
"login": {
"heading": "Own real 24K gold, backed by YourBank.",
"subheading": null,
"trust": ["BANK-GRADE VAULTS", "SELL ANYTIME", null],
"showRates": true
}
}
}It never fails — an unknown host returns OroPocket's own defaults rather than an error. Note that branding resolving for a host does not mean the host is live: serving also needs the certificate and the vhost from step 5.