Partner program
Every partner gets a unique API caller URL. Verifications created through it are attributed to you, and you earn 10% of the base value of every approved live verification — no billing, no support burden.
Your partner URL behaves exactly like /v1/verifications — the developers you bring integrate against it with their own API keys and are billed normally. You earn 10% of the base USD value of every APPROVED live verification: $0.015 per $0.15 verification.
How it works
https://api.okias.io/v1/p/<CODE>/verifications (also returned as api_call_url by GET /v1/partners/me)./v1/verifications — same auth with their own key, same request, same response. Nothing else in their integration changes.APPROVED in live mode, 10% of its base USD value lands in your commission ledger.$30, request a payout in USDT, bank transfer, PayPal or Wise. A small processing fee is withheld from the requested amount.Your partner API URL
The partner URL is a prefix in front of the standard verifications API. All three verification endpoints exist under it and behave identically to their standard counterparts:
/v1/p/:code/verifications/v1/p/:code/verifications/:id/submit/v1/p/:code/verifications/:id- Authentication is unchanged. The caller authenticates with their own API key (
Authorization: Bearer ok_live_...) and is billed normally on their own account — your URL never changes who pays. - Request and response are unchanged. Same body, same idempotency behavior, same status model and webhooks.
- Unknown or suspended codes fail fast. A request to a partner URL whose code does not exist or is suspended returns
404with error codePARTNER_NOT_FOUNDbefore any work happens.
Example: create a verification through a partner URL
This is what a developer you referred runs — their own key, your URL (here with the example code AB2CD3EF):
curl https://api.okias.io/v1/p/AB2CD3EF/verifications \
-H "Authorization: Bearer ok_live_..." \
-H "Idempotency-Key: 9f2c4a1b-1e33-4c07-9c1e-2b7f0d5a1a10" \
-H "Content-Type: application/json" \
-d '{
"level": ["FULL_KYC"],
"country": "pk",
"doc_type": "NATIONAL_ID",
"end_user_ref": "user_8842"
}'Attribution: URL and referral link
There are two attribution paths, and the partner URL always wins:
| Path | How it attributes | Precedence |
|---|---|---|
| Partner API URL | Each verification created through /v1/p/<CODE>/... is attributed to that partner, per verification. | Wins — exclusive. If a verification came through your URL, commission goes to you and only you. |
| Referral link (legacy) | Signing up via okias.io/?ref=CODE attributes the whole account to the referring partner. | Applies only when a verification did not come through a partner URL. |
Commission mechanics
You earn 10% of the base USD value of each attributed verification — at the $0.15 base price that is $0.015 per approved KYC.
| Outcome | Caller is charged | You earn |
|---|---|---|
APPROVED (live) | Yes | 10% of base |
DECLINED | No | $0 |
REVIEW | Not yet — the credit stays on hold | $0 until resolved |
REVIEW resolved to approved | Yes, on resolution | 10% of base |
ERROR | No | $0 |
| Sandbox (test key) | No | $0 |
- Approved-only, by design. Commission mirrors billing: callers are charged only on approved verifications, so only approved verifications earn commission.
- Self-calls earn nothing. Calling your own partner URL from your own account creates a normal verification but pays no commission.
- Everything is ledgered. Each commission is an entry in an append-only USD ledger on your dashboard, tied to the verification that produced it.
Payouts
Request a payout from Dashboard → Partners once your unpaid balance reaches the $30 minimum. A processing fee is withheld from the requested amount — you receive net = amount − fee.
| Method | Processing fee | Example: request $100 |
|---|---|---|
| Crypto — USDT TRC20 / BEP20 / ERC20 or another network | $1.20 flat | you receive $98.80 |
| Bank transfer / PayPal / Wise | $3.50 + 5% | you receive $91.50 |
Read the fee schedule
/v1/partners/payout-feesReturns the current minimum and fee schedule (values are platform-managed):
{
"min_payout_usd": 30,
"crypto": {
"flat_usd": 1.2,
"networks": "any (USDT TRC20 / BEP20 / ERC20 / other)"
},
"fiat": {
"base_usd": 3.5,
"percent": 0.05,
"rails": ["BANK", "PAYPAL", "WISE"]
}
}Request a payout
/v1/partners/payouts| Field | Type | Notes |
|---|---|---|
| method | string | One of USDT_TRC20, USDT_BEP20, USDT_ERC20, CRYPTO_OTHER, PAYPAL, WISE, BANK. |
| amount_usd | number | Amount to withdraw (max 2 decimal places). The fee comes out of this amount. |
| payout_details | object | Your destination — wallet address, bank or PayPal/Wise details. Stored encrypted. |
{
"method": "USDT_TRC20",
"amount_usd": 100,
"payout_details": { "address": "TX7k3...your wallet" }
}{
"id": "cms82b1qf003goea2t6n8p2kj",
"amount_usd": "100.00",
"fee_usd": "1.20",
"net_usd": "98.80",
"method": "USDT_TRC20",
"state": "REQUESTED",
"created_at": "2026-07-30T10:12:00.000Z"
}Payout errors
| Code | Meaning |
|---|---|
| BELOW_MIN_PAYOUT | The requested amount is below the $30 minimum. The balance rolls over — try again later. |
| AMOUNT_BELOW_FEE | The processing fee would consume the whole amount. Request a larger amount. |
| INSUFFICIENT_BALANCE | The requested amount exceeds your unpaid commission balance. |
Good to know
- Who pays for the verification? Always the caller, on their own account and credits. Your commission comes from OKIAS, never on top of the caller's price.
- Does the partner URL change latency or behavior? No — it is the same pipeline with an attribution stamp. Same decisions, same webhooks, same pricing.
- What if my account is suspended? Your URL stops resolving (
404 PARTNER_NOT_FOUND), so developers using it should switch back to/v1/verifications— their integrations otherwise keep working unchanged. - Where do I see my URL, code and earnings? On Dashboard → Partners, or via
GET /v1/partners/me(api_call_url,referral_code, balances and stats). - Questions or higher-volume arrangements: email sales@okias.io.