---
title: "POST /v2/merchants/:id/gate-events"
method: POST
path: "/v2/merchants/{id}/gate-events"
tags: ["reporting"]
---

# POST /v2/merchants/:id/gate-events

`POST /v2/merchants/{id}/gate-events`

## Request

- Base URL: `https://api.aifinpay.io`
- URL: `https://api.aifinpay.io/v2/merchants/{id}/gate-events`
- Auth: API key in header `AIFP-Merchant-Secret`

Reporting v2: observations never authorize payments or access. Current scope and explicit coverage; no-store. Default-off operator flag; independent approval and deployment are separate.

## Path parameters

- `id` string, required: Server-issued identifier

## Request body

- ReportingBatch
  - `version` 2, required
  - `events` ReportingEvent[], required
    - `id` string, uuid, required
    - `name` 'access_challenged' | 'access_admitted' | 'resource_response_completed', required
    - `resource` string, required
    - `at` string, date-time, required
    - `channel` 'browser' | 'api' | 'unknown', required
    - `consent` 'granted' | 'denied' | 'unknown', required
    - `client_id` string, uuid
    - `reporting_token` string: Observation capability. Header/memory only; never persist or log.
    - `outcome` 'success' | 'redirect' | 'error' | 'abort'
    - `status` integer
    - `reason` 'receipt_missing' | 'receipt_rejected' | 'quota_exhausted' | 'upstream_error' | 'client_abort' | 'unknown'

## Response `200`

Evidence-bound reporting response

- ReportingAck
  - `version` 2, required
  - `accepted` integer, required
  - `duplicates` integer, required
  - `received_at` string, date-time, required

## Other responses

- `400`: Safe reporting error; no payload or credential echo
- `401`: Safe reporting error; no payload or credential echo
- `403`: Safe reporting error; no payload or credential echo
- `404`: Safe reporting error; no payload or credential echo
- `409`: Safe reporting error; no payload or credential echo
- `410`: Safe reporting error; no payload or credential echo
- `413`: Safe reporting error; no payload or credential echo
- `422`: Safe reporting error; no payload or credential echo
- `429`: Safe reporting error; no payload or credential echo
- `503`: Safe reporting error; no payload or credential echo

---

[API](https://skmtc.dev/aifinpay/apis/aifinpay-api.md) · [All operations](https://skmtc.dev/aifinpay/apis/aifinpay-api/llms.txt) · [OpenAPI document](https://skmtc.dev/aifinpay/apis/aifinpay-api/revisions/a9a644bb441d?raw)
