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.