> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zeroclick.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Verify the seller's API setup

> Probes the supplied endpoints unpaid against the seller's upstream. Each passes only when the billing guard answers with the payment-required contract. The collected set becomes the step's evidence; all passing marks the step completed, any failure demotes it to in progress.



## OpenAPI

````yaml https://api.zeroclick.io/openapi.json post /v1/sellers/{sellerId}/onboarding/verify/api-setup
openapi: 3.0.0
info:
  title: ZeroClick API
  description: >-
    REST API for managing ZeroClick sellers, services, pricing, usage, and
    analytics. Authenticate with an API key from the ZeroClick dashboard.
  version: 1.0.0
servers:
  - url: https://api.zeroclick.io
security:
  - bearerAuth: []
tags:
  - name: API keys
  - name: Sellers
  - name: Services
  - name: Meters
  - name: Plans
  - name: Plan meter prices
  - name: Usage
  - name: Analytics
  - name: Stripe Connect
  - name: Sandbox
  - name: Organizations
  - name: Users
paths:
  /v1/sellers/{sellerId}/onboarding/verify/api-setup:
    post:
      tags:
        - Sellers
      summary: Verify the seller's API setup
      description: >-
        Probes the supplied endpoints unpaid against the seller's upstream. Each
        passes only when the billing guard answers with the payment-required
        contract. The collected set becomes the step's evidence; all passing
        marks the step completed, any failure demotes it to in progress.
      parameters:
        - schema:
            type: string
            minLength: 1
          in: path
          name: sellerId
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                endpoints:
                  minItems: 1
                  maxItems: 20
                  type: array
                  items:
                    type: object
                    properties:
                      method:
                        type: string
                        enum:
                          - get
                          - put
                          - post
                          - delete
                          - patch
                      path:
                        type: string
                        minLength: 1
                        maxLength: 500
                      body:
                        type: string
                        maxLength: 10000
                    required:
                      - method
                      - path
              required:
                - endpoints
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  step:
                    type: object
                    properties:
                      id:
                        type: string
                      step:
                        type: string
                        enum:
                          - store_details
                          - services
                          - pricing_plans
                          - custom_domain
                          - api_setup
                          - agent_traffic
                          - stripe_connect
                      status:
                        type: string
                        enum:
                          - not_started
                          - in_progress
                          - completed
                      verifiedAt:
                        nullable: true
                        type: string
                      evidence:
                        nullable: true
                      updatedAt:
                        type: string
                    required:
                      - id
                      - step
                      - status
                      - verifiedAt
                      - evidence
                      - updatedAt
                    additionalProperties: false
                  completed:
                    type: boolean
                  checks:
                    type: array
                    items:
                      type: object
                      properties:
                        endpoint:
                          type: string
                        ok:
                          type: boolean
                        status:
                          type: string
                        note:
                          nullable: true
                          type: string
                      required:
                        - endpoint
                        - ok
                        - status
                        - note
                      additionalProperties: false
                required:
                  - step
                  - completed
                  - checks
                additionalProperties: false
        '403':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    enum:
                      - organization_required
                      - organization_permission_required
                      - seller_not_found
                      - service_not_found
                      - meter_not_found
                      - plan_not_found
                      - plan_meter_price_not_found
                      - duplicate_slug
                      - duplicate_key
                      - duplicate_plan_meter_price
                      - signing_secret_not_found
                      - insufficient_scope
                      - payg_price_not_whole_cents
                      - custom_domain_skip_unavailable
                      - active_stateful_accounts_exist
                required:
                  - error
                additionalProperties: false
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    enum:
                      - organization_required
                      - organization_permission_required
                      - seller_not_found
                      - service_not_found
                      - meter_not_found
                      - plan_not_found
                      - plan_meter_price_not_found
                      - duplicate_slug
                      - duplicate_key
                      - duplicate_plan_meter_price
                      - signing_secret_not_found
                      - insufficient_scope
                      - payg_price_not_whole_cents
                      - custom_domain_skip_unavailable
                      - active_stateful_accounts_exist
                required:
                  - error
                additionalProperties: false
        '409':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    enum:
                      - organization_required
                      - organization_permission_required
                      - seller_not_found
                      - service_not_found
                      - meter_not_found
                      - plan_not_found
                      - plan_meter_price_not_found
                      - duplicate_slug
                      - duplicate_key
                      - duplicate_plan_meter_price
                      - signing_secret_not_found
                      - insufficient_scope
                      - payg_price_not_whole_cents
                      - custom_domain_skip_unavailable
                      - active_stateful_accounts_exist
                required:
                  - error
                additionalProperties: false
        '422':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    enum:
                      - organization_required
                      - organization_permission_required
                      - seller_not_found
                      - service_not_found
                      - meter_not_found
                      - plan_not_found
                      - plan_meter_price_not_found
                      - duplicate_slug
                      - duplicate_key
                      - duplicate_plan_meter_price
                      - signing_secret_not_found
                      - insufficient_scope
                      - payg_price_not_whole_cents
                      - custom_domain_skip_unavailable
                      - active_stateful_accounts_exist
                required:
                  - error
                additionalProperties: false
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key created in the ZeroClick dashboard under Settings → API keys.
        Keys start with `zc_`. Send them as `Authorization: Bearer zc_...`.

````