# Partners **Category:** Store **Base URL:** `/store/partners` **Authentication:** Mixed **Routes:** 9 routes documented ## Overview This section documents 9 API routes for partners. ## Quick Reference | Method | Endpoint | Description | |--------|----------|-------------| | POST | `/store/partners/auth/register` | POST /store/partners/auth/register Register a new partner ac... | | GET | `/store/partners/me` | GET /store/partners/me Get the current authenticated partner... | | PATCH | `/store/partners/me` | PATCH /store/partners/me Update the current authenticated pa... | | GET | `/store/partners/me/clicks` | GET /store/partners/me/clicks Get click statistics for the c... | | GET | `/store/partners/me/commissions` | GET /store/partners/me/commissions Get commission history fo... | | GET | `/store/partners/me/dashboard` | GET /store/partners/me/dashboard Get comprehensive dashboard... | | GET | `/store/partners/me/offers` | GET /store/partners/me/offers Get all offers the current par... | | GET | `/store/partners/me/payouts` | GET /store/partners/me/payouts Get payout history for the cu... | | GET | `/store/partners/offers` | GET /store/partners/offers Get available public offers that ... | | POST | `/store/partners/offers/:id/apply` | POST /store/partners/offers/:id/apply Apply to promote an of... | --- ## POST Store Partners Auth Register **Endpoint:** `POST /store/partners/auth/register` **Authentication:** Partner (Required) ### Description POST /store/partners/auth/register Register a new partner account. This endpoint should be called after obtaining a registration JWT token from /auth/partner/emailpass/register. The token proves the user has verified their email/password credentials. Flow: 1. Client calls POST /auth/partner/emailpass/register with { email, password } 2. Client receives a registration token in response 3. Client calls this endpoint with the token and partner details 4. This endpoint creates the partner record and links it to the auth identity 5. Client can now authenticate with POST /auth/partner/emailpass ### Request Body This route does not declare a validation schema, so the accepted fields are not derivable from the source. Check the handler before relying on a particular body. ### Response **Success (201):** ```typescript { partner, message, } ``` ### Example Request ```bash curl -X POST 'https://your-store.omnicart.cc/store/partners/auth/register' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## GET Store Partners Me **Endpoint:** `GET /store/partners/me` **Authentication:** Partner (Required) ### Description GET /store/partners/me Get the current authenticated partner's profile and stats. Returns partner details along with aggregate performance metrics. ### Response **Success:** ```typescript { partner, } ``` ### Example Request ```bash curl -X GET 'https://your-store.omnicart.cc/store/partners/me' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## PATCH Store Partners Me **Endpoint:** `PATCH /store/partners/me` **Authentication:** Partner (Required) ### Description PATCH /store/partners/me Update the current authenticated partner's profile. Partners can update their contact info and payment details. They cannot change their email, company name, or status. ### Request Body This route does not declare a validation schema, so the accepted fields are not derivable from the source. Check the handler before relying on a particular body. ### Response **Success:** ```typescript { partner, } ``` ### Example Request ```bash curl -X PATCH 'https://your-store.omnicart.cc/store/partners/me' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## GET Store Partners Me Clicks **Endpoint:** `GET /store/partners/me/clicks` **Authentication:** Partner (Required) ### Description GET /store/partners/me/clicks Get click statistics for the current partner. Supports filtering by date range and offer. ### Response **Success:** ```typescript { clicks, count, limit, offset, stats, analytics, } ``` ### Example Request ```bash curl -X GET 'https://your-store.omnicart.cc/store/partners/me/clicks' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## GET Store Partners Me Commissions **Endpoint:** `GET /store/partners/me/commissions` **Authentication:** Partner (Required) ### Description GET /store/partners/me/commissions Get commission history for the current partner. Supports filtering by status and pagination. ### Response **Success:** ```typescript { commissions, count, limit, offset, totals, } ``` ### Example Request ```bash curl -X GET 'https://your-store.omnicart.cc/store/partners/me/commissions' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## GET Store Partners Me Dashboard **Endpoint:** `GET /store/partners/me/dashboard` **Authentication:** Partner (Required) ### Description GET /store/partners/me/dashboard Get comprehensive dashboard data for the partner portal. Includes KPIs, recent activity, earnings chart data, and top offers. ### Response **Success:** ```typescript { kpis, period, earnings, offers, chart, recent_activity, account, } ``` ### Example Request ```bash curl -X GET 'https://your-store.omnicart.cc/store/partners/me/dashboard' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## GET Store Partners Me Offers **Endpoint:** `GET /store/partners/me/offers` **Authentication:** Partner (Required) ### Description GET /store/partners/me/offers Get all offers the current partner has applied to or is approved for. Includes tracking links and performance stats for each offer. ### Response **Success:** ```typescript { offers, summary, active_offers, pending_offers, } ``` ### Example Request ```bash curl -X GET 'https://your-store.omnicart.cc/store/partners/me/offers' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## GET Store Partners Me Payouts **Endpoint:** `GET /store/partners/me/payouts` **Authentication:** Partner (Required) ### Description GET /store/partners/me/payouts Get payout history for the current partner. Shows paid commissions grouped by payment batch/date. ### Response **Success:** ```typescript { payouts, summary, } ``` ### Example Request ```bash curl -X GET 'https://your-store.omnicart.cc/store/partners/me/payouts' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## GET Store Partners Offers **Endpoint:** `GET /store/partners/offers` **Authentication:** Partner (Optional) ### Description GET /store/partners/offers Get available public offers that partners can apply to. If authenticated, also shows which offers the partner has already applied to. ### Response **Success:** ```typescript { offers, count, limit, offset, } ``` ### Example Request ```bash curl -X GET 'https://your-store.omnicart.cc/store/partners/offers' \ -H 'Content-Type: application/json' ``` --- ## POST Store Partners Offers :id Apply **Endpoint:** `POST /store/partners/offers/:id/apply` **Authentication:** Partner (Required) ### Description POST /store/partners/offers/:id/apply Apply to promote an offer. This creates a partner-offer relationship and generates a tracking link (if auto-approved) or marks as pending. ### URL Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | string | Yes | Id identifier | ### Request Body This route does not declare a validation schema, so the accepted fields are not derivable from the source. Check the handler before relying on a particular body. ### Response **Success (201):** ```typescript { partner_offer, message, } ``` ### Example Request ```bash curl -X POST 'https://your-store.omnicart.cc/store/partners/offers/:id/apply' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` ---