Endpoint /me

Endpoint identity-bound untuk dashboard dan aplikasi user-facing menggunakan user-session JWT.

Endpoint /me mengakses data sesuai identitas pengguna pada user-session JWT. Backend menerbitkan token melalui POST /sessions, kemudian aplikasi user-facing mengirim token tersebut ke endpoint /me/*. Pada Telegram Mini App, Sejoli Telegram memverifikasi initData dan meminta Sejoli API menerbitkan token yang sama melalui flow /tma/session.

Endpoint API biasaEndpoint /me
Menggunakan API key dan scope.Menggunakan user-session JWT.
Untuk integrasi server/admin.Untuk dashboard atau aplikasi pengguna.
Parameter identitas mengikuti kontrak endpoint.Identitas selalu ditentukan dari JWT.

Autentikasi

  1. Backend memanggil POST /wp-json/sejoli/v1/sessions memakai API key dengan scope sessions:write.
  2. API menerbitkan JWT dengan token_type: Bearer dan waktu kedaluwarsa.
  3. Client mengirim token pada setiap request /me:
http
Authorization: Bearer <user_session_token>
Accept: application/json

Daftar Endpoint

Umum dan affiliate

http
GET        /me
GET        /me/home-summary
POST/PATCH /me/profile
GET        /me/commission-summary
GET        /me/commissions
GET        /me/products
GET        /me/links
GET        /me/creatives
GET        /me/rank
GET        /me/leaderboard
GET        /me/subscriptions
GET        /me/access
GET/POST   /me/affiliate-coupons
POST       /me/media/upload-image

Order identity-bound

http
GET        /me/orders
GET        /me/orders/{id}
POST/PATCH /me/orders/{id}/status

Member hanya dapat membaca order ketika menjadi buyer atau affiliate pada order tersebut. Perubahan status order memerlukan akses admin.

Parameter GET /me/orders:

ParameterTipeKeterangan
scopestringSudut pandang order sesuai role pengguna.
rolestringAlias kompatibilitas untuk scope.
statusstringFilter satu status order.
status_groupstringFilter kelompok status.
searchstringPencarian order.
date_startstringTanggal awal.
date_endstringTanggal akhir.
pageintegerHalaman, default 1.
per_pageintegerJumlah item, default 25.

Khusus admin

Endpoint berikut memerlukan user-session milik pengguna dengan capability manage_options:

http
GET      /me/admin-summary
GET      /me/users
GET      /me/users/{id}
GET/POST /me/coupons
GET      /me/licenses
GET      /me/coupon-products
POST     /me/switch-user
POST     /me/switch-back

Beberapa endpoint admin langsung diblokir ketika token sedang berada dalam konteks user switching. POST /me/switch-user hanya dapat menargetkan akun non-admin.

Profile

http
GET /wp-json/sejoli/v1/me

Response menyertakan identitas efektif, informasi kontak, kemampuan affiliate, status admin, dan konteks session. Contoh ringkas:

json
{
  "success": true,
  "data": {
    "id": 35,
    "effective_user_id": 35,
    "display_name": "User Name",
    "email": "user@example.com",
    "phone": "",
    "bank": "",
    "can_affiliate": true,
    "can_affiliate_coupon": false,
    "is_admin": false
  }
}

Update profile:

http
PATCH /wp-json/sejoli/v1/me/profile
Content-Type: application/json

Field yang didukung: first_name, phone, dan bank_info.

Affiliate

Ringkasan dan daftar komisi

http
GET /wp-json/sejoli/v1/me/commission-summary?date_start=2026-08-01&date_end=2026-08-31
GET /wp-json/sejoli/v1/me/commissions

affiliate_id selalu ditentukan dari JWT.

http
GET /wp-json/sejoli/v1/me/products
GET /wp-json/sejoli/v1/me/links?product_id=123
GET /wp-json/sejoli/v1/me/creatives?product_id=123

/me/links menerima product_id atau alias id; /me/creatives mewajibkan product_id.

Kupon affiliate

http
GET  /wp-json/sejoli/v1/me/affiliate-coupons
POST /wp-json/sejoli/v1/me/affiliate-coupons

Body pembuatan:

json
{
  "code": "PROMO-AFFILIATE",
  "coupon_parent_id": 42
}

Affiliate hanya dapat menyalin template kupon admin yang eligible. Identitas affiliate, diskon, aturan, status, dan limit ditentukan server.

Upload Gambar

http
POST /wp-json/sejoli/v1/me/media/upload-image
Content-Type: multipart/form-data

Gunakan endpoint ini untuk kebutuhan upload gambar pada aplikasi user-facing. Validasi tipe, ukuran, dan capability tetap dilakukan server.

Error Umum

StatusCodeKeterangan
400rest_missing_callback_paramParameter wajib tidak dikirim.
401sejoli_session_no_tokenBearer token tidak dikirim.
401sejoli_session_invalid_tokenToken salah, kedaluwarsa, atau payload tidak valid.
401sejoli_session_user_goneUser pada token sudah tidak ada.
403rest_forbiddenRole/capability pengguna tidak memenuhi syarat.
404rest_not_foundResource tidak ditemukan atau tidak dapat diakses pengguna.
404rest_no_routeEndpoint custom/module opsional tidak terdaftar.

Perubahan Fase 6

Endpoint lama berikut sudah dihapus dan tidak boleh digunakan:

http
POST /wp-json/sejoli/v1/me/send-report

Pengiriman report merupakan tanggung jawab Sejoli Telegram. Konsumen eksternal yang masih memerlukannya harus bermigrasi ke:

http
POST /wp-json/sejoli-telegram/v1/admin/send-report

Endpoint tersebut bukan bagian kontrak namespace Sejoli API dan memerlukan plugin Sejoli Telegram yang aktif serta terkonfigurasi.

Last updated Aug 14, 2026