---
title: "GET /api/me/config-operations/:operation"
method: GET
path: "/api/me/config-operations/{operation}"
tags: ["merchant_config"]
---

# GET /api/me/config-operations/:operation

`GET /api/me/config-operations/{operation}`

## Request

- Base URL: `https://api.aifinpay.io`
- URL: `https://api.aifinpay.io/api/me/config-operations/{operation}`
- Auth: API key in cookie `aifinpay_session`

Owned configuration control-plane. Fresh ownership, Cache-Control no-store. Strict raw UTF8 JSON <=1MiB/depth12/duplicate and unknown keys rejected. Preview does not probe DNS/HTTP. Atomic marker publication; ambiguous completion resolves by idempotency/owned operation lookup. No settlement/network activation.

## Path parameters

- `operation` string, required

## Response `200`

Owned authoritative sanitized result.

- union
  - MerchantConfigCommitted
    - `operation_id` string, required
    - `revision` string, required
    - `config` object, required
      - `format` 'aifinpay-merchant-config', required
      - `version` 1, required
      - `revision` string, required
      - `router_slug` string, nullable, required
      - `default_gateway_id` string, nullable, required
      - `legacy_gateway_id` string, nullable, required
      - `gateways` object[], required
        - `id` string, required
        - `name` string, required
        - `slug` string, required
        - `type` 'hosted_x402', required
        - `enabled_intent` boolean, required
        - `priority` integer, required
        - `upstream_base_url` string, uri, required
        - `description` string, required
        - `metadata` object, required
        - `chains` string[], required
        - `payment_assets` string[], required
        - `resources` object[], required
          - `id` string, required
          - `route_pattern` string, required
          - `type` 'page' | 'api' | 'dataset' | 'mcp_tool' | 'product', required
          - `name` string, nullable
          - `description` string
          - `active` boolean
          - `paywall_enabled` boolean
          - `currency` 'USD'
          - `billing_unit` 'request'
          - `unit_weight` integer
          - `price_usd` string
          - `tier` 'standard' | 'complex' | 'premium' | 'null', nullable
          - `chains` string[]
          - `payment_assets` string[]
          - `daily_unit_limit` integer, nullable
          - `fallback_gateway_id` string, nullable
        - `origin_secret_set` boolean, required
        - `readiness` object, required
          - `ready` boolean, required
          - `reason` string
          - `state` 'PENDING_DNS' | 'DNS_VALID' | 'DNS_INVALID' | 'REMOVED', required
      - `context_revision` string, required
      - `capabilities` object, required
        - `chains` string[], required
        - `payment_assets` string[], required
  - MerchantSiteBatchCommitted
    - `operation_id` string, required
    - `revision` string, required
    - `merchant_ids` string[], required
    - `sites` object[], required
      - `merchant_id` string, required
      - `name` string, required
      - `site_url` string, uri, required
      - `network_mode` 'live' | 'test', required
      - `gateway_id` string, required
      - `proof_state` 'PENDING_DNS', required

## Other responses

- `400`: Safe failure without partial active configuration.
- `401`: Safe failure without partial active configuration.
- `403`: AIFP-* error envelope. See backend/server.js safe error handler.
- `404`: Absent or not currently owned; generic existence-safe response.
- `409`: Safe failure without partial active configuration.
- `413`: Safe failure without partial active configuration.
- `429`: Safe failure without partial active configuration.
- `503`: Safe failure without partial active configuration.
- `5XX`: AIFP-* error envelope. See backend/server.js safe error handler.

---

[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)
