Skip to content

Partner API

Server-to-server API for approved travel agents. Authenticate with a ka_live_… key, quote eVisas and insurance, create orders, and pay from your agency wallet. Fees are always computed by Kawenter.

Base https://kawenter.com/api/partner/v1 · release 1.3.0 · OpenAPI · Markdown · Agent JSON

Discovery

Machine-readable resources for search engines, LLM tools, and integrators.

Versioning & deprecation

URL major /api/partner/v1. Current release 1.3.0.

Every response includes API-Version and X-Kawenter-API-Release.

  • Additive in v1: new endpoints, optional request fields, new response fields. No new major.
  • Breaking: removing required fields, changing types/semantics, or renaming paths → new major (/v2) or announced deprecation.
  • Deprecation notice: at least 90 days before removal; may send Deprecation / Sunset (RFC 8594).

Changelog: Markdown · GET https://kawenter.com/api/partner/v1/changelog · policy JSON: GET …/version

Your API keys

Generate and manage your API keys securely from your Kawenter Dashboard. Keys are shown once when created.

Getting Started

Integrate in four steps. All create/pay calls are server-to-server.

  1. Sign in Approved travel_agent account
  2. Get API key Dashboard → API
  3. Catalog & quote GET /catalog → POST /quotes
  4. Create & pay POST /orders → pay-wallet
Server-to-server only. This documentation is read-only. It does not send live API requests.
curl · smoke test
export KAWENTER_API_KEY="ka_live_…"
export KAWENTER_API="https://kawenter.com/api/partner/v1"

curl -sS "$KAWENTER_API" \
  -H "X-Api-Key: $KAWENTER_API_KEY" | jq .

curl -sS "$KAWENTER_API/wallet" \
  -H "X-Api-Key: $KAWENTER_API_KEY" | jq .

Authentication

Generate and manage your API keys securely from your Kawenter Dashboard.

Headers
X-Api-Key: ka_live_…
# or
Authorization: Bearer ka_live_…
  • Base URL: https://kawenter.com/api/partner/v1
  • JSON only. Content-Type: application/json on POST
  • All amounts are USD (cents integers)
  • Scopes: evisa, insurance, wallet, files, webhooks

API Reference

Schemas generated from OpenAPI. Interactive request testing is disabled call the API from your server with a dashboard-issued key.

Errors

Consistent JSON with machine-readable details. Include X-Request-Id when contacting support.

Error response
{
  "ok": false,
  "error_code": "INSUFFICIENT_WALLET",
  "message": "Insufficient wallet balance.",
  "status": 402,
  "retry_after": null,
  "request_id": "prt_a1b2c3d4e5f60718",
  "method": "POST",
  "path": "orders/123/pay-wallet",
  "docs_url": "https://kawenter.com/docs/partner#errors",
  "details": {
    "balance_cents": 1200,
    "required_cents": 5000,
    "shortfall_cents": 3800,
    "currency": "USD",
    "hint": "Top up the agency wallet, then retry pay-wallet with the same Idempotency-Key.",
    "action": "topup_wallet"
  }
}
HTTPTypical error_codeMeaning
401AUTH_REQUIRED / INVALID_API_KEYMissing or bad API key
403INSUFFICIENT_SCOPE / API_KEY_REVOKEDScope missing or key revoked
402INSUFFICIENT_WALLETWallet too low
404ORDER_NOT_FOUND / DOCUMENT_NOT_READYMissing or not ready
429RATE_LIMIT_EXCEEDEDSee Retry-After
502/503UPSTREAM_ERRORRetry with backoff

Idempotency

POST /orders/evisa requires Idempotency-Key. Recommended on pay-wallet, top-ups, cancel, and submit-documents.

API key scopes

Missing scope → 403 INSUFFICIENT_SCOPE. Rotate keys in Dashboard → API integration.

ScopeAllows
evisaeVisa catalog/quote/create; eVisa order documents; product scope for pay/cancel
insuranceInsurance catalog/quote/create; insurance orders; product scope for pay/cancel
walletBalance, transactions, top-ups; required with product scope for pay/cancel
filesFile upload and management
webhooksRegister / list / delete webhooks

Rate limits

Per API key and shared agency windows. Also returned on GET /api/partner/v1.

WindowDefaultMax (on request)Scope
Per minute (key)30120Rolling 60s per key
Per day (key)1,00050,000Rolling 24h per key
Per minute (agency)60180All keys for agency
Per day (agency)2,0006,000All keys for agency

Headers: X-RateLimit-* and Retry-After on 429.

Machine-readable: OpenAPI 3.0 · Markdown · Agent JSON · Changelog