Get started
Set up your app
Register, create an app, enable payments and get your credentials in the Developer Console.
Everything in this page happens in the Developer Console. Sensitive actions (API keys, callback URL and secret, client secret) ask for your HTP payment PIN.
1. Register as a developer
Sign in with your HTP account and accept the developer agreement. Your HTP account must be identity-verified (KYC_REQUIRED otherwise) and have an active wallet — payments settle into it.
2. Create an app
Choose the app type:
| Type | Use when | Client secret |
|---|---|---|
WEB |
You have a server (recommended for payments) | Yes, shown once |
SPA |
Browser-only app, PKCE | No |
NATIVE |
iOS / Android app, PKCE | No |
You get a client_id for Sign in with HTP. New apps are in sandbox: only you and up to 20 test users can sign in. Add test users under Test users.
Fill in the profile (the privacy policy URL is required) and submit for review. Once approved the app is published and every HTP user can sign in. Changing the name, logo or redirect URIs of a published app, or asking for the email / phone scopes, needs another review; the live version keeps working meanwhile.
3. Apply for payments
Open Payments → Apply. You can apply while the app is a draft, in review or published:
| Field | Example |
|---|---|
| Business type | E-commerce |
| Website | https://shop.example.com |
| Refund policy | 7-day refunds… |
| Expected monthly volume (USDT) | 5000 |
| Description | What you sell and to whom |
| Need payouts | Only if you will pay users (reviewed separately) |
Status goes PENDING → ENABLED (or REJECTED with a note). When enabled you see your terms:
| Term | Meaning |
|---|---|
| Single / daily / monthly limit | Maximum per payment and per UTC day / month, counted per environment |
| Fee rate + fixed fee | fee = round(amount × rate) + fixed, deducted from what you receive |
| Payouts allowed | Whether POST /open/v1/payouts works |
4. Create API keys
Payments → API keys → Create, pick the environment:
- Sandbox (
ok_test_…) — any time payments are enabled. - Production (
ok_live_…) — only after the app is published (APP_NOT_PUBLISHED).
The secret is shown once. Put it in a secret manager; never ship it in a browser or mobile app.
Rotation
Creating a new key in the same environment puts the previous one in a 24-hour grace period, so you can deploy the new secret without downtime. Revoke stops a key immediately.
5. Set the callback URL
Payments → Callback: an https:// URL with no credentials and no #fragment. It must resolve to a public IP address. The first save shows the callback signing secret once — store it next to your API secret.
Changing the URL later keeps the same secret. Rotate secret issues a new one and stops the old one immediately, so deploy support for the new secret first.
6. Watch orders and callbacks
- Orders — every payment, refund and payout, both environments, filterable by type, status and your order number.
- Statement — CSV for up to 31 days (UTC dates) for reconciliation.
- Callbacks — each delivery with attempts, last HTTP status and error. Resend re-delivers one.
Next
Sign in with HTP to get user subs, then sign your API requests.