Skip to main content
PATCH /admin/merchants/:id/acquisition-source sets (or clears) the acquisitionSource field on a MerchantV2 record. The value drives the activationMethodMix rollup surfaced by GET /admin/monetization/platform-fee-summary and feeds downstream attribution (Impact, Awin, referral payouts, agentic-affiliate intake).
This endpoint requires:
  • JWT with role = SUPER_ADMIN
  • IpAllowlistGuard — caller IP must be in the operator allowlist
  • GeoBlockGuard — caller geo must be permitted
Calls that miss any of the three return 403. Missing or invalid JWT returns 401.

PATCH /admin/merchants/:id/acquisition-source

Authentication

Obtain a SUPER_ADMIN JWT via POST /merchant/admin/login — see Authentication.

Path parameters

Request body

Example — set

Example — clear

Response — 200 OK

When cleared:

Fields

Errors

Notes

  • Operator-only. This is an operator-driven attribution backfill — no merchant or partner surface invokes it. The setter is intentionally stateless beyond the field write (no audit log entry surfaced in the response; the underlying admin actor audit captures the call).
  • Enum semantics.
    • IMPACT — sourced via the Impact.com partner network (Flatlay account).
    • AWIN — sourced via the Awin partner network.
    • REFERRAL — operator-driven referral, no partner network.
    • AGENTIC_AFFILIATE_INTAKE — sourced via the agentic-affiliate intake flow (chat / MCP).
    • OTHER — sourced through a named channel that doesn’t map to the above.
    • UNKNOWN — sourced through an unknown channel (default for backfilled legacy merchants).
  • Clearing. Omitting source (or sending {} / null) clears the field rather than rejecting the request. Use clearing to roll back an incorrect attribution.
  • Effect on rollups. The next GET /admin/monetization/platform-fee-summary call recomputes activationMethodMix from the live store, so changes appear immediately on the next read.