Metadata-Version: 2.4
Name: identifyorg
Version: 0.1.0
Summary: IdentifyOrg server-side SDK — identity verification, prepaid billing, and realtime call/chat token issuance.
License: MIT
Keywords: identifyorg,kyc,bvn,nin,identity-verification,livekit
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: requests>=2.28

# identifyorg (Python server SDK)

```bash
pip install identifyorg
```

```python
import os
from identifyorg import IdentifyOrgClient, IdentifyOrgApiError

identifyorg = IdentifyOrgClient(api_key=os.environ["IDENTIFYORG_SECRET_KEY"])

# Identity verification
result = identifyorg.verify_bvn("22212345678", first_name="Ada", last_name="Okafor",
                              idempotency_key="order-123")

# Top up credit
topup = identifyorg.topup(amount=5000)
print(topup["checkout_url"])

# Mint a realtime token for YOUR user, then hand it to the browser/mobile
# client (IdentifyOrg JS/React Native/Flutter/Kotlin SDK) — never send your
# secret key to a client.
call = identifyorg.streaming_token("video", identity=user.id, display_name=user.name)
return {"token": call["token"], "url": call["url"], "room_name": call["room_name"]}

chat = identifyorg.chat_token(visitor_id=visitor.id, visitor_name=visitor.name)
```

Errors raise `IdentifyOrgApiError` with `.status` and `.code` attributes.

## Django / Flask example: minting a call token endpoint

```python
@app.post("/api/call-token")
def call_token():
    return identifyorg.streaming_token("video", identity=current_user.id, display_name=current_user.name)
```

Your frontend calls this endpoint (never IdentifyOrg directly with a secret
key), then passes the returned `token`/`url` straight into the IdentifyOrg JS
SDK's `joinCall()`.
